728x90
# 실행계획과 통계정보
l 10g 버전부터는 매일 밤 10시에 자동으로 DB의 모든 테이블에 대해서 통계정보가 자동으로 수집
- SQL> select cline_name, status from dba_autotask_clinet’
- auto optimizer stats collection : 테이블 통계정보 확인
- auto space advisor : 빈공간을 확보하는 작업
- sql tuning advisor : 자동으로 SQL 튜닝
l 현업에서 테이블통계정보를 안하는 이유
- 대용량 테이블은 수집시간이 오래걸리기 때문에
- 새로 수집한 통계정보로 인해서 실행계획이 달라져서 기존에 잘돌던 SQL이 느려짐을 우려해서
n 통계정보 잠그는 명령어
DBMS_STATS.LOCK_TABLE_STATS('OE','ORDERS'); |
문제89. EMP 테이블에 통계정보가 수집되지 못하도록 잠그시오
SQL> EXEC dbms_stats.lock_table_stats('SCOTT','EMP'); SQL> exec dbms_stats.gather_table_stats('SCOTT','EMP'); ERROR at line 1: ORA-20005: object statistics are locked (stattype = ALL) ORA-06512: at "SYS.DBMS_STATS", line 20337 ORA-06512: at "SYS.DBMS_STATS", line 20360 ORA-06512: at line 1 - 통계정보를 잠궈놓아서 통계정보 수집에서 오류가 발생하는 것을 확인할 수 있다 |
문제90. EMP 테이블의 통계정보가 수집되도록 잠금을 해제하시오
SQL> exec dbms_stats.unlock_table_stats('SCOTT','EMP);
l 예전의 통계정보로 되돌리는 작업
SQL> SELECT dbms_stats.get_stats_history_retention FROM dual; GET_STATS_HISTORY_RETENTION --------------------------- 31 - 31일 동안 통계정보를 저장 |
l 통계정보를 수집했는데 성능이 떨어졌을 경우
- 아래의 명령어로 되돌린다
SQL> SELECT table_name, stats_update_time FROM user_tab_stats_history WHERE table_name='EMP'; - 통계정보 저장 이력 EMP 2014-08-05 오전 5:19:01 EMP 2014-08-05 오전 5:22:58 SQL> exec dbms_stats.restore_table_stats('SCOTT','EMP','05-aug-14 5:19:01 AM +09:00'); - data format 을 확인해야 하고 그대로 적어줘야 한다 SELECT * FROM nls_session_parameters; |
'빅데이터과정 > SQL TUNING' 카테고리의 다른 글
#37_140805_TUNING_옵티마이저 힌트 총정리 (0) | 2014.08.05 |
---|---|
#37_140805_TUNING_바인드 변수와 실행계획 (0) | 2014.08.05 |
#37_140805_TUNING_HISTOGRAM (0) | 2014.08.05 |
#37_140805_TUNING_DYNAMIC SAMPLING (0) | 2014.08.05 |
#37_140805_TUNING_MODEL 절 (0) | 2014.08.05 |