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,..
Historical SQL Monitor Report가 저장되지 않는 이슈
·
Oracle/Performance
Historical SQL Monitor Report는 _report_capture_cycle_time 파라미터와 관련이 있습니다. 이 파라미터를 0으로 설정하면 리포트가 저장되지 않습니다. 12.1 버전의 MMON 관련 이슈로 인해 이후 버전에서도 파라미터를 0으로 설정하도록 권고하는 경우가 많은 것으로 보입니다. NAME VALUE DEFAULT_VALUE ISSYS_MODIFIABLE DESCRIPTION -------------------------- ----- ------------- ---------------- --------------------------------------------------------- _report_capture_cycle_time 60 60 IMMEDIATE T..
crsctl stat res -t 노드 번호 호스트명 불일치
·
Oracle/Administration
crsctl stat res -t 명령어를 수행하면  노드 번호와 호스트명이 불일치하는 경우가 있습니다.$ crsctl stat res -tora.RACDB.db 1 ONLINE ONLINE RACNode1 Open 2 ONLINE ONLINE RACNode4 Open 3 ONLINE ONLINE RACNode2 Open 4 ONLINE ONLINE RACNode3 Open 이 현상은 발생할 수 있는 예상된 동작으로  MOS 문서에 아래의 내용이 포함되어 있습니다.The node ordering is not guaranteed to be same as instance number ordering. CRSCTL output in sorted order is not guaranteed. The nod..