통계정보
3. 통계정보 수집
DBMS_STATS 패키지 프로시저를 이용해 통계정보를 수집합니다.
- GATHER_DATABASE_STATS
데이터베이스의 모든 Object에 대한 통계정보를 생성합니다.
Example
SQL> execute dbms_stats.gather_table_stats(‘SCOTT’, ‘EMP’);
SQL> exec dbms_stats.gather_table_stats(ownname=>’TIBERO’,
tabname=>’ACS01′,
estimate_percent=>100 );
- GATHER_SCHEMA_STATS
스키마의 Object에 대한 통계정보를 생성합니다.
- GATHER_TABLE_STATS
테이블과 관련있는 인덱스에 대한 통계정보를 생성합니다.
- GATHER_INDEX_STATS
인덱스에 대한 통계정보를 생성합니다.
- estimate_percent 파라미터
생성 시간 단축을 위해, 테이블 일부분만을 샘플링해 통계정보를 생성합니다.
파라미터 >0 : 테이블 전체 대비 수집 비율입니다.
파라미터 =0 : 간단한 샘플링으로 예상되는 row 의 개수를 계산합니다.
row 개수에 따라 수집 속도 및 정확성을 고려한 최적의 수집비율을 산출합니다.
3.1. GATHER_DATABASE_STATS 파라미터
DBMS_STATS.GATHER_DATABASE_STATS의 options 파라미터로, 수집할 테이블의 기준을 정합니다.
- GATHER
모든 테이블에 대해 수집합니다.
- GATHER EMPTY
통계 정보가 없는 테이블을 수집합니다.
- GATHER STALE
마지막 통계정보 수집 이후 변경이 발생한 Row수가 전체 10% 넘는 테이블을 수집합니다.
- GATHER AUTO
자체적 기준에 맞는 테이블만을 수집하는 파라미터로, 아래 중 하나 이상의 조건을 만족하는 테이블을 수집합니다.
– 통계 정보가 수집된지 1주일 넘은 테이블 (_DBMS_STATS_GATHER_AUTO_STALED)
– GATHER EMPTY 조건의 테이블
– 통계 정보에서 row 개수가 0으로 저장된 테이블
– GATHER STALED 조건의 테이블
4. 통계정보 조회
통계정보를 생성 후 조회합니다.
- [DBA|ALL|USER]_TABLES : 테이블의 통계정보를 조회합니다.
- [DBA|ALL|USER]_INDEXES : 인덱스의 통계정보를 조회합니다.
- [DBA|ALL|USER]_TAB_HISTOGRAMS : 컬럼의 데이터 분포도 정보를 조회합니다.
Example
SQL> select table_name, num_rows, blocks, avg_row_len,
sample_size, last_analyzed
from dba_tables
where owner=’TIBERO’
and table_name=’ACS01′;
TABLE_NAME NUM_ROWS BLOCKS LAST_ANALYZE
——————- ——————- ————– —————————-
ACS01 1000000 5504 2016/09/23 16:32:01
1 row selected.
5. 통계정보 Export 및 Import
기존의 실행계획대로 다른 데이터베이스에서 동일하게 운영하고 싶을 때 통계정보를 export 및 Import로 통계정보를 일치시킵니다.
티베로에서는 아래의 프로시저를 지원합니다.
DBMS_STATS.EXPORT_XXX_STATS
DBMS_STATS.IMPORT_XXX_STATS
- 해당 테이블에 대해 EXPORT_XXX_STATS 프로시저로 통계 정보를 별도의 테이블에 저장합니다.
- 쿼리에 사용된 테이블 및 통계정보 테이블을 tbexport로 dump 수행 후, 대상 시스템으로 이관합니다.
- 대상 시스템에서 tbimport를 이용해 통계 정보를 import 합니다.
6.1. Degree
6.1. Degree
통계 정보 수집을 parallel하게 해서 빠르게 처리하고자 할 때 사용하는 파라미터 입니다.
SQL문에서의 parallel hint와 같은 원리로 기본값은 1 입니다.
6.2. Granularity
Partitioned 테이블에서의 통계 정보 수집 영역 입니다.
- PARTITION : 파티션 단위
- GLOBAL : 테이블 전체
- ALL : 파티션 테이블 전체 및 파티션 각각 모두 포함