Staging Table
·
Oracle/Administration
Oracle 23ai에 Staging Table 기능이 추가되었습니다. 적재 성능을 개선하기 위해 로깅 최소화 등의 기능이 추가되기를 바랬지만 현재까지는 압축, 통계 수집, 파티션 관리가 불가능하고 삭제시 즉시 PURGE되는 점을 제외하면 일반 테이블과 크게 다르지 않은 것 같습니다.Staging tables are heap tables optimized for fast data ingestion and for handling volatile data. Key table attributes are set to defaults for these use cases without any additional user interaction. Creating staging tables rather than 'nor..
JSON Relational Duality #3 - M:1 조인 Duality 뷰
·
Oracle/JSON
JSON Relational Duality #1 - 단순 Duality 뷰 JSON Relational Duality #2 - 1:M 조인 Duality 뷰 JSON Relational Duality #3 - M:1 조인 Duality 뷰 지난 글에 이어 이번 글에서는 M:1 조인 Duality 뷰의 동작에 대해 살펴보겠습니다. 준비테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.4.0.24.051 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.DROP TABLE t1 PURGE;DROP TABLE t2 PURGE;CREATE TABLE t1 (c1..
JSON Relational Duality #2 - 1:M 조인 Duality 뷰
·
Oracle/JSON
JSON Relational Duality #1 - 단순 Duality 뷰 JSON Relational Duality #2 - 1:M 조인 Duality 뷰 JSON Relational Duality #3 - M:1 조인 Duality 뷰 지난 글에 이어 이번 글에서는 1:M 조인 Duality 뷰의 동작에 대해 살펴보겠습니다. 준비테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.4.0.24.051 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 2DROP TABLE t1 PURGE;DROP TABLE t2 PURGE;CREATE TABLE t1..
JSON Relational Duality #1 - 단순 Duality 뷰
·
Oracle/JSON
JSON Relational Duality #1 - 단순 Duality 뷰JSON Relational Duality #2 - 1:M 조인 Duality 뷰JSON Relational Duality #3 - M:1 조인 Duality 뷰 Oracle 23ai에 JSON Relational Duality 기능이 추가되었습니다. 이 기능을 사용하면 JSON-Relational Duality 뷰(이후 Duality 뷰)를 통해 RDB 모델을 JSON 문서로 조회하거나 변경할 수 있습니다. 이 글에서는 조인이 없는 단순 뷰의 동작에 대해 살펴보겠습니다. JSON Relational Duality에 대한 상세한 내용은 JSON-Relational Duality Developer's Guide를 참고하세요. 준비테스..
AI Vector Search #3 - IVF 벡터 인덱스
·
Oracle/Vector
AI Vector Search #1 - 기본 기능AI Vector Search #2 - HNSW 벡터 인덱스AI Vector Search #3 - IVF 벡터 인덱스 IVF(Inverted File Flat) 벡터 인덱스는 Neighbor Partition 벡터 인덱스의 한 형태로 Neighbor 파티션 또는 클러스터를 사용해 검색 영역을 좁혀 조회 효율을 높이는 파티션 기반 인덱스입니다. 이 글에서는 IVF 벡터 인덱스의 구조와 동작에 대해 간단히 살펴보겠습니다.  테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.4.0.24.051 row selected. 테스트를 위해 아래..
AI Vector Search #2 - HNSW 벡터 인덱스
·
Oracle/Vector
AI Vector Search #1 - 기본 기능AI Vector Search #2 - HNSW 벡터 인덱스AI Vector Search #3 - IVF 벡터 인덱스 HNSW(Navigable Small World Graph) 벡터 인덱스는 계층적 탐색이 가능한 In-Memory Neighbor Graph 벡터 인덱스의 한 형태로 벡터 근사 유사도 검색에 효율적인 인덱스입니다. 이 글에서는 HNSW 벡터 인덱스의 구조와 동작에 대해 간단히 살펴보겠습니다.  테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.4.0.24.051 row selected. 테스트를 위해 아래와 같이 테..
AI Vector Search #1 - 기본 기능
·
Oracle/Vector
AI Vector Search #1 - 기본 기능AI Vector Search #2 - HNSW 벡터 인덱스AI Vector Search #3 - IVF 벡터 인덱스 Oracle 23ai에 AI Vector Search 기능이 추가되었습니다. AI Vector Search는 AI 워크로드를 위해 설계되었으며 키워드가 아닌 의미론에 기반하여 데이터를 조회합니다. 이 글에서는 AI Vector Search의 기본 기능에 대해 간단히 살펴보겠습니다. ML을 사용한 벡터 생성과 관련된 내용은 Oracle AI Vector Search User's Guide를 참고하세요. 테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION..
ALTER SYSTEM FLUSH LOCAL
·
Oracle/Administration
Oracle 23ai 문서의 ALTER SYSTEM 문 내용에 아래와 같이 RAC 환경에서 FLUSH할 대상을 LOCAL과 GLOBAL로 지정할 수 있는 구문이 추가되었습니다.ALTER SYSTEM FLUSH { BUFFER_CACHE | FLASH_CACHE } [ LOCAL | GLOBAL ]; 흥미로운 사실은 기본값이 LOCAL이 아닌 GLOBAL이라는 점입니다. 실제로 특정 노드에서 ALTER SYSTEM FLUSH BUFFER_CACHE 문을 수행하면 RAC 전체 노드의 Buffer Cache가 Flush됩니다.The FLUSH BUFFER_CACHE clause lets you clear all data from the buffer cache in the system global area (S..
ROWNUM을 사용하는 FETCH FIRST 변환
·
Oracle/Performance
Oracle 23ai(23.4)부터 ROW LIMITING 절을 사용한 쿼리가 분석 함수가 아닌 ROWNUM 슈도 칼럼을 사용하는 쿼리로 변환됩니다. 아래는 쿼리 변환과 관련된 Fix Control입니다.-- 1SELECT bugno, value, sql_feature, description, optimizer_feature_enable FROM v$system_fix_control WHERE bugno = 35915968; BUGNO VALUE SQL_FEATURE DESCRIPTION OPTIMIZER_FEATURE_ENABLE-------- ----- ----------------------------- ---..
CURSOR_SHARING_FORCE 힌트
·
Oracle/Performance
Oracle 23ai(23.4)에 CURSOR_SHARING_FORCE 힌트가 추가되었습니다. CURSOR_SHARING_FORCE 힌트를 사용하면 구문 레벨에서 Cursor Sharing 기능을 Force로 설정할 수 있습니다.-- 1SELECT name, inverse, target_level, version FROM v$sql_hint WHERE name IN ('CURSOR_SHARING_EXACT', 'CURSOR_SHARING_FORCE');NAME INVERSE TARGET_LEVEL VERSION-------------------- -------------------- ------------ -------CURSOR_SHARING_EXA..
JSON_TRANSFORM 함수 기능 개선
·
Oracle/JSON
오라클 23ai에서 JSON_TRANSFORM 함수의 기능이 대폭 개선되었습니다. 이 글에서 여러 개선 기능 중 산술 연산(arithmetic operation)에 대해 살펴보겠습니다. 테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version; VERSION_FULL------------23.3.0.23.09 1 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 2DROP TABLE t1 PURGE;CREATE TABLE t1 (c1 JSON); INSERT INTO t1 VALUES ('{ "instId":1, "statList":[ {"statId":1,"valueList":[..
JSON PASSING 절 개선
·
Oracle/JSON
오라클 23ai에서 다수의 바인드 변수를 사용할 수 있게  JSON PASSING 절의 기능이 개선되었습니다. 이번 글에서 관련 내용을 살펴보겠습니다. 테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.3.0.23.091 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 2DROP TABLE t1 PURGE;CREATE TABLE t1 (c1 JSON);INSERT INTO t1 VALUES ('{ "instId":1, "statList":[ {"statId":1,"valueList":[{"type":"MIN","value":..