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