오라클은 DBMS_STATS 패키지로 통계정보 관리를 지원한다.
하위에 여러 프로시져가 있는데 자주 쓰는 프로시져 몇 가지에 대해서 정리해보자.
- DBMS_STATS.CREATE_STAT_TABLE : 통계정보를 담을 테이블 생성
사용법 : begin dbms_stats.create_stat_table('SCOTT','STAT_TABLE','USERS'); end;
scott 소유의 테이블 stat_table 을 users 테이블스페이스에 생성.
이 테이블은 아래쪽의 통계정보 export 할때 사용될수 있다.
- DBMS_STATS.DROP_STAT_TABLE : 통계정보 테이블 삭제
사용법 : begin dbms_stats.drop_stat_table('SCOTT','STAT_TABLE'); end;
- DBMS_STATS.GATHER_STAT_TABLE : 통계정보 수집
사용법 : begin dbms_stats.gather_stat_table(OWNNAME=>'SCOTT', TABNAME=>'TEST_TAB', partname=>'PT_2000', estimate_percent=>5, degree=>1, granularity=>'PARTITION', cascade=>TRUE, no_invalidate=>FALSE ); end;
- DBMS_STATS.EXPORT_STAT_TABLE : 통계정보 백업 (export) **
사용법 : begin dbms_stats.export_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB', stattab=>'STAT_TAB'
- DBMS_STATS.IMPORT_STAT_TABLE : 통계정보 복구 (import) **
사용법 : begin dbms_stats.import_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB', stattab=>'STAT_TAB'
- DBMS_STATS.DELETE_STAT_TABLE : 통계정보 삭제
사용법 : (일반테이블) begin dbms_stats.delete_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB'); end;
(파티션) begin dbms_stats.delete_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB', partname=>'PT_2000'); end;
select owner, table_name, partition_name,
num_rows, last_analyzed, global_stats, stattype_locked
from dba_tab_statistics
where owner='SCOTT';
- DBMS_STATS.COPY_STAT_TABLE : 통계정보 복사
사용법 : begin dbms_stats.copy_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB', srcpartname=>'PT_2000', dstpartname=>'PT_2001'); end;
- DBMS_STATS.LOCK_STAT_TABLE : 통계정보 잠금
사용법 : begin dbms_stats.lock_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB'); end;
- DBMS_STATS.UNLOCK_STAT_TABLE : 통계정보 잠금해제
사용법 : begin dbms_stats.unlock_stat_table(ownname=>'SCOTT', tabname=>'TEST_TAB'); end;
확인 : DBA_TAB_STATISTICS => stattype_locked
** 딕셔너리 통계정보
DBMS_STAT.GATHER_DICTIONARY_STATS
DBMS_STAT.GATHER_FIXED_OBJECTS_STATS
** 자동 통계정보 수집
오라클을 설치하면 디폴트로 자동 통계수집 되는 것이 있다.
select *
from dba_autotask_client
WHERE client_name LIKE 'auto opt%'
;
필요하다면 disable 한다.
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'auto optimizer stat collection'
,operation => null
,window_name => null
);
'생계 > Oracle' 카테고리의 다른 글
[oracle] db접속 안될때 (0) | 2022.08.15 |
---|---|
[oracle] 아카이브모드 변경 no arch -> arch -> no arch (0) | 2022.08.14 |
DBMS_SCHEDULER (2) | 2022.03.02 |
[ASM 환경] 테이블스페이스 생성, 추가, RESIZE (0) | 2022.01.26 |
sql loader 에러시 실행로그로 스크립트 생성 (0) | 2021.10.31 |