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..
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..
파티션 MERGE 동작 방식
·
Oracle/Administration
파티션 MERGE 동작 방식을 테스트하기 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 (c1 NUMBER, c2 NUMBER) PARTITION BY RANGE (c1) ( PARTITION p1 VALUES LESS THAN (2) , PARTITION p2 VALUES LESS THAN (MAXVALUE) ); 아래 실행 계획에서 파티션 merge가 p1 파티션을 읽어 p2 파티션으로 입력하는 방식으로 동작하는 것을 알 수 있습니다. 단일 세그먼트는 단일 테이블스페이스에 존재해야 하므로 상이한 테이블스페이스에 생성된 파티션의 경우 예상되는 동작 방식이지만, 동일한 테이블스페이스에 생성된 파티션이라면 메타데이터 변경만으로 파티션을..
max_idle_blocker_time 파라미터
·
Oracle/Administration
Oracle 19c에 max_idle_blocker_time 파라미터가 추가되었습니다. 블로킹 세션이 이 파라미터에 지정한 시간동안 IDLE 상태로 유지되면 세션을 자동으로 종료됩니다. 기본값은 0으로 미사용입니다. 블로킹 세션으로 인해 성능 이슈가 발생하고 있다면 해당 파라미터의 적용을 고려할 수 있습니다.-- 1SELECT name, value, default_value, description FROM v$parameter WHERE name = 'max_idle_blocker_time';NAME VALUE DEFAULT_VALUE DESCRIPTION--------------------- ----- ------------- ------------------------..
Varray 타입 칼럼 테이블 구조
·
Oracle/Administration
Varray 타입 칼럼은 내부적으로 VARCAR2 타입이나 CLOB 타입에 데이터를 저장합니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE OR REPLACE TYPE tva_number FORCE IS VARRAY(32767) OF NUMBER; / CREATE TABLE t1 (c1 NUMBER, c2 tva_number); INSERT INTO t1 VALUES (1, tva_number (1, 2)); COMMIT; 아래는 t1 테이블을 조회하는 쿼리의 실행 계획입니다. -- 2 SELECT * FROM t1; ----------------------------------------------------- | Id | Operat..
Nested Table 타입 칼럼 테이블 구조
·
Oracle/Administration
Nested Table 타입 칼럼을 가진 테이블을 생성하면 암시적으로 Nested Table과 Nested Table 인덱스가 생성됩니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 CREATE OR REPLACE TYPE tnt_number FORCE IS TABLE OF NUMBER; / DROP TABLE t1 PURGE; CREATE TABLE t1 (c1 NUMBER, c2 tnt_number) NESTED TABLE c2 STORE AS t1_c2; INSERT INTO t1 VALUES (1, tnt_number (1, 2)); COMMIT; 아래는 t1 테이블을 조회하는 쿼리의 실행 계획입니다. 스칼라 서브쿼리와 유사한 형태로 SYS_FK0000084463N00002$ 인..
히든 파라미터 조회 뷰
·
Oracle/Administration
히든 파라미터 조회 뷰를 생성해보겠습니다. 보안상의 이유로 이 뷰는 운영 환경이 아닌 테스트 환경에서만 사용해야 합니다. 아래 쿼리로 기본이 되는 GV$PARAMETER 뷰와 GV$PARAMETER_VALID_VALUES 뷰의 소스를 조회할 수 있습니다.-- 1SELECT view_name, view_definition FROM v$fixed_view_definition WHERE view_name IN ('GV$PARAMETER', 'GV$PARAMETER_VALID_VALUES');VIEW_NAME VIEW_DEFINITION------------------------- --------------------------------------------------------..
LIST 글로벌 파티션 인덱스
·
Oracle/Administration
Oracle Database는 LIST 글로벌 파티션 인덱스를 지원하지 않습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 (c1 NUMBER, c2 NUMBER, c3 NUMBER); 아래와 같이 RANGE, HASH 글로벌 파티션 인덱스는 생성되지만, LIST 글로벌 파티션 인덱스가 생성되지 않는 것을 확인할 수 있습니다. -- 2-1 CREATE INDEX t1_x1 ON t1 (c1) GLOBAL PARTITION BY RANGE (c1) ( PARTITION p1 VALUES LESS THAN (1) , PARTITION p2 VALUES LESS THAN (MAXVALUE) ); 인덱스가 생성되었습니다. --..
Attribute Clustering
·
Oracle/Administration
Oracle 12c에 Attribute Clustering 기능이 추가되었습니다. 이 기능을 사용하면 Direct Path Loads 또는 테이블 재구성 시 데이터를 정렬하여 CF를 높일 수 있습니다. CLUSTERING [clustering_join] BY [ LINEAR | INTERLEAVED ] ORDER clustering_columns [{ YES | NO } ON LOAD] [{ YES | NO } ON DATA MOVEMENT] [zonemap_clause] 테스트를 위해 아래와 같이 t1, t2, t3 테이블을 생성하겠습니다. t2 테이블은 기본 설정으로 Attribute Clustering를 생성하고, t3 테이블은 ON LOAD 속성을 NO로 설정합니니다. -- 1-1 DROP TAB..
DESCENDING 인덱스
·
Oracle/Administration
DESCENDING 인덱스는 일부 인덱스 칼럼이 내림차순으로 정렬된 인덱스로 오름차순과 내림차순이 혼재된 정렬을 처리하기 위한 용도로 사용됩니다. 테스트를 위해 아래와 같이 테이블과 인덱스를 생성하겠습니다. t1_x1 인덱스는 c2 칼럼이 내림차순으로 정렬된 DESCENDING 인덱스입니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 AS SELECT CEIL (ROWNUM / 2) AS c1, ROWNUM AS c2 FROM XMLTABLE ('1 to 10'); CREATE INDEX t1_x1 ON t1 (c1, c2 DESC); DESCENDING 인덱스는 FBI로 생성됩니다. SYS_NC00003$ 칼럼은 t1 테이블에 암시적으로 생성된 Virtual 칼럼입니다...
ORA-14196 에러
·
Oracle/Administration
UNIQUE 인덱스의 일부 선두 칼럼으로 PK 제약 조건을 생성하면 ORA-14196 에러가 발생합니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. c1 칼럼을 NOT NULL로 정의했습니다.-- 1DROP TABLE t1 PURGE;CREATE TABLE t1 (c1 NOT NULL, c2, c3) AS SELECT ROWNUM, ROWNUM, LPAD ('X', 100, 'X') FROM XMLTABLE ('1 to 10000000'); 아래와 같이 NOT NULL로 정의된 UNIQUE 인덱스의 칼럼으로 PK 제약 조건을 생성하면 PK 제약 조건 생성에 0.01초가 소요됩니다.-- 2CREATE UNIQUE INDEX t1_pk ON t1 (c1);ALTER TABLE t1 ADD CONST..
가상 칼럼을 사용한 리스트 파티션
·
Oracle/Administration
MOD 함수나 ORA_HASH 함수를 사용한 가상 칼럼을 파티션 키로 사용하면 해시 파티션과 유사한 리스트 파티션을 생성할 수 있습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. ORA_HASH (c1, 3) 표현식으로 c2 가상 칼럼을 생성하고, c2 칼럼을 파티션 키로 가진 4개의 리스트 파티션을 생성합니다. 데이터 타입이 문자 타입이라면 MOD 함수 대신 ORA_HASH 함수를 사용할 수 있습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 ( c1 NUMBER , c2 NUMBER AS (MOD (c1, 4)) --, c2 NUMBER AS (ORA_HASH (c1, 3)) ) PARTITION BY LIST (c2) ( PARTITION p0 VALUE..