DBMS_STATS
DBMS_STATS 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명합니다.
개요
DBMS_STATS는 데이터베이스 객체의 통계 정보를 수집하고 관리하는 패키지입니다. 이 패키지를 사용하면 데이터베이스에 있는 컬럼, 테이블, 데이터 사전(DD: Data Dictionary), 인덱스, 스키마, 시스템 등에 대 한 통계 정보를 수집하고 관리(예: 삭제 또는 초기화 등)할 수 있습니다.
테이블 통계 정보 수집 시에 사용자 선택에 따라서 컬럼 각각에 대한 데이터 분포도를 저장합니다. 이를 히스 토그램이라 하고, 수집 가능한 데이터 타입은 NUMBER, CHAR, VARCHAR, DATE, TIME, TIMESTAMP 입니다.
사용자는 자신에게 소속된 객체들에 대해서만 통계 정보 수집이 가능합니다. ANALYZE ANY 권한을 부여받으면 모든 사용자의 객체에 대한 통계 정보 수집이 가능합니다.
상수
본 절에서는 DBMS_STATS 패키지에서 제공하는 상수를 알파벳 순으로 설명합니다.
AUTO_DEGREE
STAT 정보를 수집할 경우 병렬 쿼리의 처리 개수를 설정하는 DEGREE 값을 CPU 성능에 따라 자동으로 설정해줍니다.
프러시저
본 절에서는 DBMS_STATS 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.
ALTER_STATS_HISTORY_RETENTION
통계 정보 히스토리 보유 기간을 변경하는 프러시저입니다. 해당 값은 통계 정보 히스토리를 제거하는 시점 에 영향을 끼칩니다. 히스토리를 제거하는 기능은 “45.3.39. PURGE_STATS” 를 참고합니다.
ALTER_STATS_HISTORY_RETENTION 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
retention
통계 정보 히스토리를 보유할 최대 기간(일 단위) 1 이상의 값이어야 하지만, 특별한 목적을 위해 아래와 같이 값을 지정할 수 있음
-1 : 자동 히스토리 제거를 통해 제거되지 않음 (보유 기간이 무제한).
0 : 이후 수집되는 통계 정보에 대한 히스토리가 저장되지 않음. 기존 히 스토리들은 자동 제거 기능을 통해 제거됨됨.
NULL : 기본값인 31일로 설정.
COPY_TABLE_STATS
테이블 및 로컬 인덱스의 원본 파티션의 통계 정보를 대상 파티션의 통계 정보로 복사하는 프러시저입니다.
RANGE 파티션일 경우 파티션 키의 첫 번째 컬럼의 히스토그램이 대상 파티션 바로 이전 파티션까지를 대상으로 수집되었다면 히스토그램도 같이 갱신합니다.
COPY_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
파티션이 속한 스키마의 이름
tabname
파티션이 속한 테이블의 이름
srcpartname
통계 정보를 복사할 원본 파티션의 이름
dstpartname
통계 정보를 복사할 대상 파티션의 이름
scale_factor
원본 파티션의 로우 개수, 블록 개수 등을 해당 수치만큼 곱하여 대상 파티션에 저장
flags
사용하지 않는 파라미터
force
TRUE로 설정되면, 테이블의 통계 정보가 잠겨 있어도 복사
예외 상황
20003
존재하지 않는 테이블 혹은 파티션 이름을 입력한 경우
CREATE_STAT_TABLE
통계 정보를 저장할 통계 테이블을 생성하는 프러시저입니다.
CREATE_STAT_TABLE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
통계 테이블이 속한 스키마의 이름
stattab
통계 정보를 저장할 통계 테이블의 이름
tblspace
통계 테이블이 속할 테이블 스페이스의 이름
(기본값: NULL, NULL일 경우 owner의 default 테이블 스페이스에 저장)
예외 상황
7068
잘못된 스키마를 입력한 경우
DELETE_COLUMN_STATS
컬럼의 통계 정보를 삭제하는 프러시저입니다.
DELETE_COLUMN_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
컬럼이 속한 테이블의 이름
colname
컬럼의 이름
partname
통계 정보를 삭제할 파티션의 이름
테이블이 파티션되어 있고, partname의 값이 NULL이면 테이블 수준의 컬럼 통계 정보를 삭제
cascade_parts
테이블이 파티션되어 있고, partname이 NULL일 때 TRUE로 설정하면 모든 파티션 수준의 컬럼 통계 정보도 함께 삭제
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 컬럼 통계 정보가 잠겨 있어도 삭제
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
DELETE_DATABASE_STATS
데이터베이스에 있는 모든 테이블의 통계 정보를 삭제하는 프러시저입니다.
DELETE_DATABASE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 삭제
DELETE_DICTIONARY_STATS
모든 데이터 사전의 스키마(SYS, SYSCAT)의 통계 정보를 삭제하는 프러시저입니다.
DELETE_DICTIONARY_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 삭제
DELETE_INDEX_STATS
인덱스의 통계 정보를 삭제하는 프러시저입니다.
DELETE_INDEX_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
idxname
인덱스의 이름
partname
통계 정보를 삭제할 파티션의 이름
인덱스가 파티션으로 나누어져 있고, partname의 값이 NULL이면 인덱스 수 준의 통계 정보를 삭제
cascade_parts
인덱스가 파티션으로 나누어져 있고, partname의 값이 NULL일 때 TRUE로 설정하면 모든 파티션 수준의 통계 정보도 함께 삭제
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 인덱스의 통계 정보가 잠겨있어도 삭제
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
DELETE_PENDING_STATS
Pending 상태의 통계 정보를 삭제하는 프러시저입니다.
DELETE_PENDING_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
DELETE_SCHEMA_STATS
스키마 전체의 통계 정보를 삭제하는 프러시저입니다.
DELETE_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름. NULL일 경우 이 프러시저를 호출한 스키마의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 삭제
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
DELETE_SYSTEM_STATS
workload 시스템의 통계 정보를 삭제하고, noworkload 시스템의 통계 정보를 초기화하는 프러시저입니다. workload 시스템의 통계 정보는 INTERVAL, START, STOP 옵션으로, noworkload 시스템의 통계 정보는 NOWORKLOAD 옵션으로 수집합니다.
DELETE_SYSTEM_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
예외 상황
20000
DBA 권한이 없는 경우
DELETE_TABLE_PREFS
테이블에 설정된 통계 수집 옵션을 삭제하는 프러시저입니다.
DELETE_TABLE_PREFS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
pname
삭제할 통계 수집 옵션의 이름
예외 상황
20003
잘못된 테이블을 입력한 경우
20011
잘못된 옵션 이름을 입력한 경우
DELETE_TABLE_STATS
테이블의 통계 정보를 삭제하는 프러시저입니다.
DELETE_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
partname
통계 정보를 삭제할 대상 파티션의 이름
파티션으로 나뉘어 있고, partname의 값이 NULL이면 테이블 수준의 통계 정보를 삭제
cascade_parts
테이블이 파티션으로 나뉘어 있고, partname이 NULL일 때 TRUE로 설정하 면 모든 파티션 수준의 통계 정보도 함께 삭제
cascade_columns
TRUE로 설정하면 컬럼의 통계 정보도 함께 삭제
cascade_indexes
TRUE로 설정하면 테이블에 있는 인덱스의 통계 정보도 함께 삭제
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 테이블의 통계 정보가 잠겨 있어도 삭제
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
DROP_EXTENDED_STATS
지정한 표현식에 대한 통계를 삭제하는 프러시저입니다.
DROP_EXTENDED_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
지정한 표현식에 대한 통계가 있는 스키마의 이름
tabname
지정한 표현식에 대한 통계가 있는 테이블의 이름
exprname
삭제할 표현식
예외 상황
20003
잘못된 테이블을 입력한 경우
20009
존재하지 않는 표현식을 입력한 경우
DROP_STAT_TABLE
통계 테이블을 삭제하는 프러시저입니다.
DROP_STAT_TABLE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
통계 테이블이 속한 스키마의 이름
stattab
통계 정보를 저장할 통계 테이블의 이름
예외 상황
7068
잘못된 스키마를 입력한 경우
EXPORT_COLUMN_STATS
지정한 컬럼의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_COLUMN_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
colname
컬럼의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20003
잘못된 컬럼을 입력한 경우
EXPORT_DATABASE_STATS
데이터베이스에 있는 테이블의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_DATABASE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20000
DBA 권한이 없는 경우
EXPORT_INDEX_STATS
지정한 인덱스의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_INDEX_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
indname
인덱스의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20003
잘못된 인덱스를 입력한 경우
EXPORT_PENDING_STATS
Pending 상태의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_PENDING_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20003
잘못된 테이블을 입력한 경우
EXPORT_SCHEMA_STATS
스키마 전체의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20003
잘못된 스키마를 입력한 경우
EXPORT_SYSTEM_STATS
시스템의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_SYSTEM_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20000
DBA 권한이 없는 경우입니다.
EXPORT_TABLE_STATS
테이블의 통계 정보를 통계 테이블에 저장하는 프러시저입니다.
EXPORT_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름. NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
cascade
테이블이 갖는 컬럼, 인덱스, 파티션의 통계 정보를 저장
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20003
잘못된 테이블을 입력한 경우
FLUSH_DATABASE_MONITORING_INFO
테이블 및 관련 객체에 대한 모니터링 정보를 물리적으로 저장하는 프러시저입니다.
FLUSH_DATABASE_MONITORING_INFO 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
GATHER_DATABASE_STATS
데이터베이스의 모든 객체의 통계 정보를 수집하는 프러시저입니다.
GATHER_DATABASE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
estimate_percent
샘플링할 로우의 퍼센트를 정의합니다.0.000001 이상 100 이하의 값을 설정할 수 있다. 0을 입력한 경우에는 optimizer가 테이블의 크기에 따라 적합한 sampling rate를 결정하여 수행합니다. NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행합니다.
block_sample
estimate_percent가 100보다 작을 때 로우 샘플링 대신 블록 샘플링을 사용할 수 있음
블록 샘플링 방식은 로우 샘플링에 비해 분석이 고르게 분포하지 않기 때문에 estimate_percent가 충분히 크지 않으면 일반적으로는 FALSE로 두어야 함
method_opt
히스토그램 생성에 대한 옵션으로 설정 방법은 [method_opt 파라미터 설정 방법]을 참고
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
degree
병렬 처리의 처리 개수를 설정
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
cascade
인덱스에 대해서도 통계를 함께 수집
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
gather_sys
SYS 사용자의 테이블에 대해서도 통계를 수집할 수 있음
no_invalidate
TRUE로 설정한 경우 현재의 Physical Plan을 삭제하지 않음
options
수집될 히스토그램 기준을 정함
GATHER : 모든 테이블에 대해서 수집
GATHER AUTO : 제일 적절한 기준에 의하여 수집이 필요한 테이블만 수집
GATHER EMPTY : 통계 정보가 없는 테이블에 대해서만 수집
GATHER STALE : 기존 통계 정보가 오래 되었거나 테이블의 10% 이상이 변경된 경우 우선 통계 정보를 수집
granularity
통계 정보를 수집하는 대상을 가리킴.
ALL : 테이블 및 파티션, 서브파티션의 통계 정보를 수집
APPROX_GLOBAL AND PARTITION : 파티션 통계를 수집하고, 이를 이용해서 전체 테이블 통계를 수집
AUTO : 기본적으로 ALL과 같으나, _OPT_STAT_GRAN_GATHER_AUTO=Y일 경우, options=>'GATHER AUTO' 가 추가됨
DEFAULT : 테이블 및 파티션의 통계 정보를 수집
GLOBAL : 전체 테이블의 통계 정보만 수집
GLOBAL AND PARTITION : 테이블 및 파티션의 통계 정보를 수집
PARTITION : 파티션 수준의 통계 정보만 수집
SUBPARTITION : 서브파티션 수준의 통계 정보만 수집
force
TRUE로 설정한 경우 큰 테이블의 샘플링 비율과는 관계없이 통계를 강제로 수집
[method_opt 파라미터 설정방법]
다음과 같은 형식으로 method_opt 파라미터를 설정할 수 있습니다.
FOR ALL
각 옵션에 대한 설명은 다음과 같습니다.
INDEXED
인덱스된 컬럼의 통계 정보를 수집
HIDDEN
실제 컬럼이 아닌 functional index로 생성된 컬럼에 대해서 통계 정보를 수집
size_clause
히스토그램을 생성할 때 길이를 설정하는 데 필요한 절
FOR COLUMNS
각 옵션에 대한 설명은 다음과 같습니다.
size_clause
히스토그램을 생성할 때 길이를 설정하는 데 필요한 절
size_clause
각 항목에 대한 설명은 다음과 같습니다.
integer
히스토그램 버킷의 수
1~256개까지 설정할 수 있음
REPEAT
이미 히스토그램이 존재하는 컬럼에 대해서만 히스토그램을 수집
DEFAULT_REPEAT
기존에 히스토그램이 있는 경우 버킷 수를 그대로 사용하고, 히스토그램이 없습니다면 AUTO와 같이 버킷 수를 설정
AUTO
시스템에서 자동으로 값을 결정
컬럼 사용 정보를 활용하는 옵션이 켜져 있을 경우 아래의 조건에 따라 통계를 수집
사용 정보가 존재하는 컬럼인 경우
데이터 분포의 치우친 정도가 내부 기준치 이상인 경우
SKEWONLY
데이터 분포가 한쪽으로 치우친 분포에 맞게 값을 결정
예외 상황
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
GATHER_DICTIONARY_STATS
모든 데이터 사전의 스키마(SYS, SYSCAT) 객체의 통계 정보를 수집하는 프러시저입니다.
GATHER_DICTIONARY_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
estimate_percent
샘플링할 로우의 퍼센트를 정의
0.000001 이상 100 이하의 값을 설정할 수 있음
0을 입력한 경우에는 optimizer가 테이블의 크기에 따라 적합한 sampling rate을 결정하여 수행
block_sample
estimate_percent가 100보다 작을 때 로우 샘플링 대신 블록 샘플링을 사용 할 수 있음
블록 샘플링 방식은 로우 샘플링에 비해 표본이 고르게 뽑히지 않기 때문에 estimate_percent가 충분히 크지 않을 때는 기본값인 FALSE로 두어야 함
method_opt
히스토그램 생성에 대한 옵션
파라미터를 설정하는 방법은 [method_opt파라미터 설정방법]을 참고.
degree
병렬 쿼리의 처리 개수를 설정
cascade
인덱스에 대해서도 통계 정보를 수집
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
granularity
통계 정보를 수집하는 대상을 가리킴
ALL : 테이블 및 파티션, 서브파티션의 통계 정보를 수집
APPROX_GLOBAL AND PARTITION : 파티션 통계를 수집하고, 이를 이용해서 전체 테이블 통계를 수집
AUTO : 기본적으로 ALL과 같으나, _OPT_STAT_GRAN_GATHER_AUTO=Y일 경우, options=>'GATHER AUTO' 가 추가됨
DEFAULT : 테이블 및 파티션의 통계 정보를 수집
GLOBAL : 전체 테이블의 통계 정보만 수집
GLOBAL AND PARTITION : 테이블 및 파티션의 통계 정보를 수집
PARTITION : 파티션 수준의 통계 정보만 수집
SUBPARTITION : 서브파티션 수준의 통계 정보만 수집
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 수집
예외 상황
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
GATHER_INDEX_STATS
인덱스의 통계 정보를 수집하는 프러시저입니다.
GATHER_INDEX_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
idxname
인덱스의 이름
partname
파티션의 이름
estimate_percent
샘플링할 로우의 퍼센트를 정의.
0.000001 이상 100 이하의 값을 설정할 수 있음. 0을 입력한 경우에는 optimizer가 테이블의 크기에 따라 적합한 sampling rate을 결정하여 수행
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
degree
병렬 쿼리의 처리 개수를 설정
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 인덱스의 통계 정보가 잠겨 있어도 수집
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
GATHER_SCHEMA_STATS
스키마의 모든 객체의 통계 정보를 수집하는 프러시저입니다.
GATHER_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름.
estimate_percent
샘플링할 로우의 퍼센트를 정의
0.000001 이상 100 이하의 값을 설정할 수 있음
0을 입력한 경우에는 optimizer가 테이블의 크기에 따라 적합한 sampling rate을 결정하여 수행
block_sample
estimate_percent가 100보다 작을 때 로우 샘플링 대신 블록 샘플링을 사용할 수 있음
블록 샘플링 방식은 로우 샘플링에 비해 표본이 고르게 뽑히지 않기 때문에 estimate_percent가 충분히 크지 않을 때는 기본값인 FALSE로 두어야 함
method_opt
히스토그램 생성에 대한 옵션
파라미터를 설정하는 방법은 [method_opt파라미터 설정방법]을 참고
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
degree
병렬 쿼리의 처리 개수를 설정
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
cascade
인덱스에 대해서도 통계 정보를 수집
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 수집
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
GATHER_SYSTEM_STATS
시스템의 통계 정보를 수집하는 프러시저입니다. 이 프러시저를 사용하려면 DBA 권한이 필요합니다.
GATHER_SYSTEM_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
gathering_mode
NOWORKLOAD, INTERVAL, START/STOP 옵션을 지원
각 옵션에 대한 설명은 다음의 [gathering_mode 파라미터 설정 옵션]을 참조
interval
gathering_mode가 INTERVAL일 때 시스템의 성능을 측정하는 시간을 분 단 위로 나타냄 (기본값: 60분)
limit
gathering_mode가 NOWORKLOAD일 때 임의의 입출력을 수행해 볼 최대 데이터양을 Byte 단위로 나타냄
이때 단위는 K(Kilo Byte), M(Mega Byte), G(Giga Byte), T(Tera Byte) 등을 사용할 수 있음
캐시 버퍼(데이터베이스의 캐시, 운영체제의 캐시 등)의 크기보다 큰 값을 사용해야 좀 더 정확한 정보를 얻을 수 있음 (기본값: 3G)
[gathering_mode 파라미터 설정 옵션]
gathering_mode 파라미터에 설정할 수 있는 각 옵션에 대한 설명은 다음과 같습니다.
NOWORKLOAD
시스템의 CPU와 입출력 성능을 측정. 즉 시스템의 통계 정보 중 CPUS PEED, SEEKTM, TRFSPEED를 수집.
시스템의 통계 정보는 데이터 파일을 통해 수집되기 때문에 데이터베이스와 테이블 스페이스를 모두 생성하고서, 해당 정보를 수집할 것을 권장.
서버 부하에 따라 보다 자세한 시스템의 통계 정보를 설정하려면, gathering_mode 파라미터의 옵션 중 START 또는 STOP 또는 INTERVAL 파라미터를 사용해야 함
noworkload와 workload 시스템의 통계 정보를 모두 수집하는 경우에는 workload 시스템의 통계 정보가 최적화기(Optimizer)에서 사용됨
이 모드에서 시스템의 통계 정보를 수집하면 데이터베이스 크기에 따라 몇 분이 걸릴 수 있음
이를 해결하기 위해 limit 파라미터를 사용하여 수집 시간을 조절할 수 있음
INTERVAL
interval 파라미터에 설정된 시간 동안 시스템의 성능을 측정
workload 시스템의 통계 정보인 SBLKRDTM, MBLKRDTM, MBLKRDCNT를 수집
필요하다면 gathering_mode 파라미터의 옵션을 STOP으로 설정하여 interval 파라미터에 설정한 시간이 모두 지나가기 전에 수집을 일찍 마칠 수 있음
START, STOP
START와 STOP 옵션 간의 시스템 성능을 측정
workload 시스템의 통 계 정보인 SBLKRDTM, MBLKRDTM, MBLKRDCNT를 수집
예외 상황
20000
권한이 부족한 경우
20023
잘못된 gathering_mode 파라미터(NOWORKLOAD, INTERVAL, START, STOP만 가능)를 사용한 경우
20026
잘못된 파라미터 값을 입력한 경우
20027
_DD_AUX_STATS 통계 테이블의 내용이 이상한 경우
GATHER_TABLE_STATS
테이블의 통계 정보를 수집하는 프러시저입니다.
GATHER_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 현재 스키마의 이름
tabname
테이블의 이름
partname
파티션의 이름
estimate_percent
샘플링할 로우의 퍼센트를 정의
0.000001 이상 100 이하의 값을 설정할 수 있음
0을 입력한 경우에는 optimizer가 테이블의 크기에 따라 적합한 sampling rate을 결정하여 수행
block_sample
estimate_percent가 100보다 작을 때 로우 샘플링 대신 블록 샘플링을 사용 할 수 있음
블록 샘플링 방식은 로우 샘플링에 비해 표본이 고르게 뽑히지 않기 때문에 estimate_percent가 충분히 크지 않을 때는 기본값인 FALSE로 두어야 함
method_opt
히스토그램 생성에 대한 옵션. 파라미터를 설정하는 방법은 [method_opt 파라미터 설정방법]을 참고
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
degree
병렬 쿼리의 처리 개수를 설정
NULL일 경우 현재 테이블의 GET_PREFS 값으로 수행
cascade_indexes
인덱스에 대해서도 통계 정보를 수집
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
granularity
통계 정보를 수집하는 대상을 가리킴
ALL : 테이블 및 파티션, 서브파티션의 통계 정보를 수집
APPROX_GLOBAL AND PARTITION : 파티션 통계를 수집하고, 이를 이용해서 전체 테이블 통계를 수집
AUTO : 기본적으로 ALL과 같으나, _OPT_STAT_GRAN_GATHER_AUTO=Y일 경우, options=>'GATHER AUTO' 가 추가됨
DEFAULT : 테이블 및 파티션의 통계 정보를 수집
GLOBAL : 전체 테이블의 통계 정보만 수집
GLOBAL AND PARTITION : 테이블 및 파티션의 통계 정보를 수집
PARTITION : 파티션 수준의 통계 정보만 수집
SUBPARTITION : 서브파티션 수준의 통계 정보만 수집
force
TRUE로 설정하면 테이블의 통계 정보가 잠겨 있어도 수집
예외 상황
OBJECT_NOT_EXISTS
객체가 존재하지 않는 경우
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
GET_COLUMN_STATS
데이터 사전(DD: Data Dictionary) 또는 통계 테이블에 있는 지정한 컬럼의 통계 정보를 가져오는 프러시저입니다.
GET_COLUMN_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
colname
컬럼의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
distcnt
컬럼 내 서로 다른 값들의 개수
density
컬럼 값들의 밀도
nullcnt
컬럼 내 NULL 개수
avgclen
byte 단위로 나타낸 컬럼의 평균 길이
예외 상황
20003
잘못된 컬럼을 입력한 경우
20025
잘못된 통계 테이블을 입력한 경우
GET_INDEX_STATS
데이터 사전(DD: Data Dictionary) 또는 통계 테이블에 있는 지정한 인덱스의 통계 정보를 가져오는 프러시저입니다.
GET_INDEX_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
idxname
인덱스의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
numrows
인덱스의 로우 개수
numblks
인덱스의 블록 개수
numlblks
인덱스의 리프블록 개수
numdist
인덱스 내 서로 다른 값들의 개수
clstfct
인덱스의 클러스터링 팩터
0에서 1 사이의 값으로 정규화되어 있음
idxlevel
인덱스의 높이
예외 상황
20007
잘못된 인덱스를 입력한 경우
20003
잘못된 파티션을 입력한 경우
20004
파티션 인덱스가 아닌데 파티션 이름을 지정한 경우
20025
잘못된 통계 테이블을 입력한 경우
GET_TABLE_STATS
데이터 사전(DD: Data Dictionary) 또는 통계 테이블에 있는 지정된 테이블의 통계 정보를 가져오는 프러시저입니다.
GET_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
numrows
테이블의 로우 개수
numblks
테이블의 블록 개수
avgrlen
테이블의 평균 로우 길이
예외 상황
20003
잘못된 테이블 혹은 파티션을 입력한 경우
20004
파티션 테이블이 아닌데 파티션을 입력한 경우
20025
잘못된 통계 테이블을 입력한 경우
IMPORT_COLUMN_STATS
통계 테이블에 있는 지정한 컬럼의 통계 정보를 데이터 사전에 저장하는 프러시저입니다.
IMPORT_COLUMN_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
colname
컬럼의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 컬럼 통계 정보가 잠겨있어도 저장
예외 상황
20003
잘못된 컬럼을 입력한 경우
IMPORT_DATABASE_STATS
통계 테이블에 있는 모든 테이블의 통계 정보를 데이터 사전에 저장하는 프러시저입니다.
IMPORT_DATABASE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 저장
예외 상황
20000
DBA 권한이 없는 경우
IMPORT_INDEX_STATS
통계 테이블에 있는 지정한 인덱스의 통계 정보를 데이터 사전에 저장하는 프러시저입니다.
IMPORT_INDEX_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
indname
인덱스의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 인덱스의 통계 정보가 잠겨있어도 저장
예외 상황
20003
잘못된 인덱스를 입력한 경우
IMPORT_SCHEMA_STATS
통계 테이블에 있는 스키마 전체의 통계 정보를 데이터 사전에 저장하는 프러시저입니다.
IMPORT_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 저장
예외 상황
20003
잘못된 스키마를 입력한 경우
IMPORT_SYSTEM_STATS
통계 테이블에 있는 시스템의 통계 정보를 데이터 사전에 저장하는 프러시저입니다.
IMPORT_SYSTEM_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
예외 상황
20000
DBA 권한이 없는 경우
IMPORT_TABLE_STATS
통계 테이블에 있는 테이블의 통계 정보를 데이터 사전에 저장하는 프러시저입니다.
IMPORT_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
cascade
테이블이 갖는 컬럼, 인덱스, 파티션의 통계 정보를 저장
statown
통계 테이블이 속한 스키마의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 테이블의 통계 정보가 잠겨있어도 저장
예외 상황
20003
잘못된 테이블을 입력한 경우
LOCK_TABLE_STATS
해당 테이블과 소속된 인덱스, 파티션, 컬럼의 통계 정보들을 잠그는 프러시저입니다. 잠겨진 통계 정보는 수집 혹은 삭제, 복사가 불가능합니다.
단일 테이블에 대한 수집, 삭제, 복사 (GATHER_TABLE_STATS, DELETE_TABLE_STATS 등)에 대해서는 에러가 발생하고 , 여러 객체에 대한 수집, 삭제, 복사 (GATHER_SCHEMA_STATS, DELETE_DATABASE_STATS 등)에 대해서는 건너뛰어 진행합니다.
LOCK_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
예외 상황
20003
잘못된 테이블을 입력한 경우
LOCK_SCHEMA_STATS
해당 스키마에 소속된 테이블, 인덱스, 파티션, 컬럼의 통계 정보들을 잠그는 프러시저입니다. 잠겨진 통계 정보는 수집 혹은 삭제, 복사가 불가능합니다.
단일 테이블에 대한 수집, 삭제, 복사 (GATHER_TABLE_STATS, DELETE_TABLE_STATS 등)에 대해서 는 에러가 발생하고 , 여러 객체에 대한 수집, 삭제, 복사 (GATHER_SCHEMA_STATS, DELETE_DATABASE_STATS 등)에 대해서는 건너뛰어 진행합니다.
LOCK_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
예외 상황
20002
잘못된 스키마를 입력한 경우
RESET_COL_USAGE
특정 테이블에 대한 컬럼 사용 정보를 삭제하는 프러시저입니다.
RESET_COL_USAGE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
tabname
컬럼 사용 정보를 삭제할 테이블의 이름
예외 상황
20050
잘못된 테이블을 입력한 경우
SET_COLUMN_STATS
데이터 사전(DD: Data Dictionary) 또는 통계 테이블에 사용자가 입력한 지정된 컬럼에 대한 임의의 통계 정보를 기록하는 프러시저입니다.
SET_COLUMN_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
colname
컬럼의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
distcnt
컬럼 내 서로 다른 값들의 개수
density
컬럼 값들의 밀도
nullcnt
컬럼 내 NULL 개수
avgclen
byte 단위로 나타낸 컬럼의 평균 길이
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 컬럼 통계 정보가 잠겨있어도 저장
예외 상황
20003
잘못된 컬럼을 입력한 경우
20025
잘못된 통계 테이블을 입력한 경우
SET_INDEX_STATS
데이터 사전(DD: Data Dictionary) 또는 통계 테이블에 사용자가 입력한 지정된 인덱스에 대한 임의의 통 계 정보를 기록하는 프러시저입니다.
SET_INDEX_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름.
idxname
인덱스의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
numrows
인덱스의 로우 개수
numblks
인덱스의 블록 개수
numlblks
인덱스의 리프블록 개수
numdist
인덱스 내 서로 다른 값들의 개수
clstfct
인덱스의 클러스터링 팩터
0에서 1 사이의 값으로 정규화되어 있음
idxlevel
인덱스의 높이
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 인덱스의 통계 정보가 잠겨있어도 저장
예외 상황
20003
잘못된 파티션을 입력한 경우
20004
파티션 인덱스가 아닌데 파티션 이름을 입력한 경우
20007
해당 인덱스가 비활성화되어 있거나 통계 정보를 저장할 수 없는 형식의 인덱스
20025
잘못된 통계 테이블을 입력한 경우
SET_TABLE_PREFS
sys.optstat_user_prefs$ 테이블에 특정 테이블에 대한 통계 수집 옵션을 기록하는 프러시저입니다.
SET_TABLE_PREFS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
pname
통계 수집 옵션의 이름
pvalue
저장할 통계 수집 옵션의 값
NULL인 경우 GET_PARAM 값으로 저장됨
예외 상황
20003
잘못된 테이블을 입력한 경우
20011
잘못된 통계 수집 옵션 이름 또는 값을 입력한 경우
SET_TABLE_STATS
데이터 사전(DD: Data Dictionary) 또는 통계 테이블에 사용자가 입력한 지정된 테이블에 대한 임의의 통계 정보를 기록하는 프러시저입니다.
SET_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름.
tabname
테이블의 이름
partname
파티션의 이름
stattab
통계 테이블의 이름
statid
통계 테이블 내에서 구분할 통계 정보 ID
statown
통계 테이블이 속한 스키마의 이름
numrows
테이블의 로우 개수
numblks
테이블의 블록 개수
avgrlen
테이블의 평균 로우 길이
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 테이블의 통계 정보가 잠겨있어도 수정
예외 상황
20003
잘못된 테이블 혹은 파티션을 입력한 경우
20004
해당 테이블은 파티션된 테이블이 아님
20025
잘못된 통계 테이블을 입력한 경우
PURGE_STATS
지정된 시점보다 오래된 통계 정보 히스토리들을 제거하는 프러시저입니다. 이 프러시저 수행을 하려면 SYSDBA 혹은 ANALYZE ANY 권한이 필요합니다.
PURGE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
before_timestamp
NULL이 아닌 값을 지정할 경우 지정된 시점보다 이전의 히스토리들은 삭제됨
NULL일 경우 GET_STATS_HISTORY_RETENTION 함수에서 조회되는 보유 기간 값에 맞춰서 삭제됨
PUBLISH_PENDING_STATS
Pending 상태로 수집된 통계를 DD에 반영하는 프러시저입니다.
PUBLISH_PENDING_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
예외 상황
20003
잘못된 테이블을 입력한 경우
RESTORE_SCHEMA_STATS
스키마의 모든 객체의 통계 정보를 지정된 시간대(as_of_timestamp)로 복원하는 프러시저입니다.
RESTORE_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
as_of_timestamp
복원할 통계 정보의 시간대
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 잠겨 있는 테이블 및 관련 객체들의 통계 정보들도 복원
RESTORE_TABLE_STATS
테이블의 통계 정보를 지정된 시간대(as_of_timestamp)로 복원하는 프러시저입니다. 이 프러시저는 연관된 인덱스와 컬럼들의 통계 정보들까지 복원합니다.
RESTORE_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
as_of_timestamp
복원할 통계 정보의 시간대
no_invalidate
TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음
force
TRUE로 설정하면 테이블의 통계 정보가 잠겨 있어도 복원
SET_PARAM
DBMS_STATS 패키지의 디폴트 파라미터의 값을 변경하는 프러시저입니다.
SET_PARAM 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
pname
파라미터의 이름
pval
파라미터의 설정값 NULL로 설정한 경우 VT_PARAMETER의 값을 참조하여 Tibero를 설치할 때 기본값으로 변경 NULL로 설정하지 않은 경우 다음과 같은 옵션을 설정
STAT_CASCADE : DBMS_STATS 패키지에서 사용하는 cascade 파라미터의 기본값 (설치 기본값: Y)
STAT_METHOD_OPT : DBMS_STATS 패키지에서 사용하는 method_opt 파라미터의 기본값 (설치 기본값: FOR ALL COLUMNS SIZE 32)
STAT_NO_INVALIDATE : DBMS_STATS 패키지에서 사용하는 no_invalidate 파라미터의 기본값(설치 기본값: N)
STAT_ESTIMATE_PERCENT : DBMS_STATS 패키지에서 사용하는 estimate_percent 파라미터의 기본값 (설치 기본값: 0)
STAT_DEGREE : DBMS_STATS 패키지에서 사용하는 degree 파라미터의 기본값 (설치 기본값: 1)
예외 상황
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
SET_SYSTEM_STATS
시스템의 통계 값을 수동으로 설정하는 프러시저입니다.
SET_SYSTEM_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
pname
파라미터의 이름
pvalue
파라미터의 설정값
다음은 파라미터에 대한 설명
CPUSPEED : 1μs 당 평균 CPU 사이클 수(Mhz)
SEEKTM : 평균 입출력 탐색 시간(I/O seek time) (단위: ms)
TRFSPEED : 평균 입출력 전송 속도(I/O transfer speed)(단위: byte/ms)
SBLKRDTM : 임의의 단일 블록을 읽는 데 걸리는 평균 시간 (단위: ms)
MBLKRDTM : 연속된 BLKRDCNT 블록을 읽는 데 걸리는 평균 시간(단위: ms)
BLKRDCNT : 연속된 여러 블록을 읽을 때의 평균 블록 수
예외 상황
20000
DBA 권한이 없는 경우
20021
잘못된 파라미터 값을 입력한 경우
20022
잘못된 파라미터 이름을 입력한 경우
UNLOCK_TABLE_STATS
해당 테이블과 소속된 인덱스, 파티션, 컬럼의 통계 정보들에 대한 잠금을 해제하는 프러시저입니다. 잠금이해지된 통계 정보는 수집 혹은 삭제, 복사가 다시 가능해집니다.
UNLOCK_TABLE_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
tabname
테이블의 이름
예외 상황
20003
잘못된 테이블을 입력한 경우
UNLOCK_SCHEMA_STATS
해당 스키마에 소속된 테이블, 인덱스, 파티션, 컬럼의 통계 정보들에 대한 잠금을 해제하는 프러시저입니다. 잠금이 해지된 통계 정보는 수집 혹은 삭제, 복사가 다시 가능해집니다.
UNLOCK_SCHEMA_STATS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
NULL일 경우 이 프러시저를 호출한 스키마의 이름
예외 상황
20002
잘못된 스키마를 입력한 경우
함수
본 절에서는 DBMS_STATS 패키지에서 제공하는 함수를 알파벳 순으로 설명합니다.
CREATE_EXTENDED_STATS
지정한 표현식에 대한 통계를 생성하는 함수입니다.
CREATE_EXTENDED_STATS 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
onname
스키마의 이름
tabname
테이블의 이름
exprname
통계 정보를 생성할 표현식
예외 상황
8026
잘못된 표현식을 입력한 경우
20003
잘못된 테이블을 입력한 경우
20009
이미 존재하는 표현식을 입력한 경우
DIFF_TABLE_STATS_IN_PENDING
Pending 상태의 통계와 다른 통계를 비교해 리포트를 생성하는 함수입니다.
DIFF_TABLE_STATS_IN_PENDING 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
ownname
스키마의 이름
tabname
테이블의 이름
timestamp
Pending 상태의 통계와 비교할 통계의 수집 시간
NULL인 경우 DD(Data dictionary)의 통계와 비교
pctthreshold
두 통계 값에 대해 차이가 있다고 판단할 임계값
예외 상황
20003
잘못된 테이블을 입력한 경우입니다.
GET_PARAM
DBMS_STATS 패키지의 디폴트 파라미터의 값을 반환하는 함수입니다.
GET_PARAM 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
pname
파라미터의 이름
예외 상황
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
GET_PREFS
테이블에 설정된 통계 수집 옵션 값을 반환하는 함수입니다. 설정된 옵션이 없는 경우 GET_PARAM 프러시 저의 값을 반환합니다.
GET_PREFS 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
pname
통계 수집 옵션의 이름
ownname
스키마의 이름
tabname
테이블의 이름
예외 상황
20003
잘못된 테이블을 입력한 경우
20011
잘못된 통계 수집 옵션 이름 또는 값을 입력한 경우
GET_STATS_HISTORY_AVAILABILITY
사용 가능한 가장 오래된 통계 정보 히스토리의 저장 시점을 반환합니다. 사용자는 통계 정보를 이 시점보다 예전으로 복원할 수 없습니다.
GET_STATS_HISTORY_AVAILABILITY 함수의 세부 내용은 다음과 같습니다.
프로토타입
GET_STATS_HISTORY_RETENTION
현재 설정된 통계 정보 히스토리의 최대 보유 기간을 반환합니다.
GET_STATS_HISTORY_RETENTION 함수의 세부 내용은 다음과 같습니다.
프로토타입
TO_BOOLEAN
TRUE, FALSE 문자열을 BOOLEAN 타입의 TRUE, FALSE 값으로 변경하여 반환하는 함수입니다.
TO_BOOLEAN 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
strval
TRUE 또는 FALSE 문자열 값
예외 상황
BAD_INPUT_VALUE
잘못된 파라미터 값을 입력한 경우
Last updated

