Oracle Database 23c Free - Developer Release 공개
·
Oracle/Installation
지난 2022년 10월에 공개된 Oracle Database 23c Beta Release(이후 23c Beta) 이후 6개월만에 Oracle Database 23c Free - Developer Release(이후 23c Free)가 공개되었습니다. 23c Beta는 23.1 버전으로 EE로 설치할 수 있고 신청자에 한해 배포되었으며 테스트 내용을 공개할 수 없었습니다. 23c Free는 23.2 버전으로 XE로만 설치할 수 있고 누구나 사용할 수 있으며 테스트 내용을 자유롭게 공개할 수 있습니다. 참고로 23c 정식 버전은 2024년 출시 예정으로 알려져 있습니다. 아래 링크에서 출시 정보, 라이센스 정보, 신규 기능을 확인할 수 있습니다. Database Release NotesDatabase Li..
V$SPPARAMETER 뷰
·
Oracle/Administration
V$SPPARAMETER 뷰는 SPFILE(Server Parameter File)의 내용을 표시합니다. V$SPPARAMETER displays information about the contents of the server parameter file. If a server parameter file was not used to start the instance, then each row of the view will contain FALSE in the ISSPECIFIED column. 아래는 Real Application Clusters Administration and Deployment Guide의 Setting SPFILE Parameter Values for Oracle RAC 항목의 SP..
V$PARAMETER2 뷰
·
Oracle/Administration
V$PARAMETER2 뷰는 쉼표(,)로 구분된 목록 형식의 파라미터 값을 로우로 표시합니다. V$PARAMETER2 displays information about the initialization parameters that are currently in effect for the session, with each list parameter value appearing as a row in the view. A new session inherits parameter values from the instance-wide values displayed in the V$SYSTEM_PARAMETER2 view. Presenting the list parameter values in this format e..
물리 메모리 증설
·
Oracle/Installation
물리 메모리 증설 시 인스턴스 메모리 설정을 변경하기 전에 kernel.shmmax, kernel.shmall, vm.nr_hugepages 파라미터를 변경해야 합니다. 참고로 아래 명령어로 파라미터 값을 조회할 수 있습니다.# sysctl -a | grep kernel.shm# cat /etc/sysctl.conf | grep kernel.shmkernel.shmmax 파라미터는 공유 메모리의 최대 크기(바이트)를 의미하며 일반적으로 물리 메모리 크기와 동일한 값을 설정합니다. kernel.shmall 파라미터는 공유 메모리의 최대 페이지 개수를 의미하며 CEIL (shmmax / PAGE_SIZE) 공식으로 값을 계산할 수 있습니다. 증설의 경우 두 파라미터 모두 기존 값에 증설한 비율을 곱한 값을 ..
LOB 오프로딩
·
Exadata
System Software User's Guide의 Operation Not Being Offloaded 항목에는 쿼리가 compressed LOB이나 out-of-line LOB을 포함하면 오프로딩이 동작하지 않는다는 내용이 포함되어 있습니다. A smart I/O operation cannot be offloaded to the Exadata storage servers in the following cases: The query contains a compressed or out-of-line LOB. An out-of-line LOB stores LOB data apart from the other row data and is typically larger than 4 KB in size. 테스..
암시적 데이터 변환과 오프로딩
·
Exadata
System Software User's Guide의 Operation Not Being Offloaded 항목에 함수 오프로딩과 관련된 아래의 내용이 포함되어 있습니다. 암시적 데이터 변환은 오프로딩되지 않는 INTERNAL_FUNCTION 함수를 수행할 수 있고 이로 인해 쿼리의 성능이 저하될 수 있습니다. A smart I/O operation cannot be offloaded to the Exadata storage servers in the following cases: Although offloading is supported for most SQL operators and functions, Oracle Exadata System Software does not support offload..
참조 칼럼 수와 오프로딩
·
Exadata
System Software User's Guide의 Operation Not Being Offloaded 항목에는 쿼리가 255개 이상의 단일 테이블 칼럼을 참조하면 오프로딩이 동작하지 않고 HCC 압축을 사용하면 제한을 회피할 수 있다는 내용이 포함되어 있습니다. A smart I/O operation cannot be offloaded to the Exadata storage servers in the following cases: A query that has more than 255 columns referenced, and the heap table is uncompressed, or Basic or OLTP compressed. However, such queries on tables com..
HCC Compression for Array Inserts #2
·
Exadata
지난 글에 이어 HCC Compression for Array Inserts 기능에 대한 INSERT SELECT 문과 Array INSERT 문을 Conventional Path와 Direct Path로 수행했을 때의 동작을 비교하겠습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1-1 DROP TABLE ts PURGE; CREATE TABLE ts (c1, c2, c3, c4, c5, c6) AS SELECT ROWNUM , LPAD (ORA_HASH (ROWNUM, 4294967295, 0), 10, '0') , LPAD (ORA_HASH (ROWNUM, 4294967295, 1), 10, '0') , LPAD (ORA_HASH (ROWNUM, 4294967295, 2), 10,..
HCC Compression for Array Inserts #1
·
Exadata
12.2 버전에 HCC Compression for Array Inserts 기능이 추가되어 Conventional Path로 수행되는 INSERT SELECT 문과 ARRAY INSERT 문도 HCC 압축이 가능해졌습니다. Hybrid Columnar Compression (HCC) can now be used during array inserts into tables. This means that the SQL INSERT SELECT statement without the APPEND hint can use HCC, and array inserts from programmatic interfaces such as PL/SQL and the Oracle Call Interface (OCI) can u..
FORALL 문으로 수행한 DML 문의 수행 횟수
·
Oracle/Performance
FORALL 문으로 수행한 DML 문의 수행 횟수는 FORALL 문의 수행 횟수로 기록됩니다. 이로 인해 SQL 실행 통계 분석 시 주의가 필요합니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. t1 테이블은 1,000,000개의 로우를 가지고 있습니다. -- 1 DROP TABLE t1 PURGE; DROP TABLE t2 PURGE; CREATE TABLE t1 (c1, c2) AS SELECT ROWNUM, LPAD ('X', 100, 'X') FROM XMLTABLE ('1 to 1000000'); CREATE TABLE t2 AS SELECT * FROM t1 WHERE 0 = 1; 아래와 같이 1,000건 단위로 Bulk Insert를 수행하겠습니다. FORALL 문은 1,000회(=..
예상 카디널리티에 따른 SORT CLUSTER BY ROWID 오퍼레이션의 동작
·
Oracle/Performance
SORT CLUSTER BY ROWID 오퍼레이션은 예상 카디널리티에 따라 정렬 크기가 달라질 수 있으며, 이로 인해 Buffer pinning 효과가 달라질 수 있습니다. 부정확한 오브젝트 통계로 인해 SORT CLUSTER BY ROWID 오퍼레이션의 정렬 크기가 감소하여 Buffer pinning 효과가 감소하는 경우 통계 정보를 수집하거나 DYNAMIC_SAMPLING 힌트를 사용하여 성능을 개선할 수 있습니다. 테스트를 위해 아래와 같이 t1 테이블과 CF가 나쁜 t1_x1 인덱스를 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 (c1, c2) AS SELECT NVL (NULLIF (MOD (ROWNUM, 100), 0), 100) , LPAD ('..
반복 표현식 성능 개선
·
Oracle/Performance
12c에 반복 표현식에 대한 성능 개선 기능이 추가된 것으로 보입니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 (c1) AS SELECT DATE '2050-01-01' FROM XMLTABLE ('1 to 1000000'); 아래 쿼리는 TO_CHAR (c1, 'MM') 표현식을 12번 반복하여 사용합니다. 11.2 버전에서 수행에 1.56초가 소요됩니다. -- 2: 11.2 SELECT SUM (DECODE (TO_CHAR (c1, 'MM'), '01', 1)) AS c01 , SUM (DECODE (TO_CHAR (c1, 'MM'), '02', 1)) AS c02 , SUM (DECODE (TO_CHAR (c1,..