내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
다운로드
trending_flat
OS환경 : Oracle Linux 6.8 (64bit)
DB 환경 : Oracle Database 10.2.0.4, 11.2.0.4
방법 : 자동통계정보 수집 기능 테이블 단위 비활성화 (lock)
자동통계정보 수집 기능 테이블 단위 비활성화 (lock)
EXEC DBMS_STATS.LOCK_TABLE_STATS('유저명','테이블명');
1 2 3 | EXEC DBMS_STATS.LOCK_TABLE_STATS('JSH','EMP'); PL/SQL procedure successfully completed. |
수동 통계정보 수집
1 2 3 4 5 6 7 8 9 | EXEC DBMS_STATS.GATHER_TABLE_STATS('JSH','EMP'); BEGIN DBMS_STATS.GATHER_TABLE_STATS('JSH','EMP'); END; * ERROR at line 1: ORA-20005: object statistics are locked (stattype = ALL) ORA-06512: at "SYS.DBMS_STATS", line 24281 ORA-06512: at "SYS.DBMS_STATS", line 24332 ORA-06512: at line 1 |
에러 발생하면서 수집되지 않음
통계정보 lock 확인
1 2 3 4 5 6 | select table_name, stattype_locked from user_tab_statistics where stattype_locked='ALL'; TABLE_NAME STATT ------------------------------ ----- EMP ALL |
자동통계정보 수집상태가 LOCK 상태이면 LOCKSTATTYPE_LOCKED가 ALL로 표시된다.
11g 기준으로 LOCKSTATTYPE_LOCKED 의 값은 ALL, DATA, CACHE가 있는데
오라클 커뮤니티 유저의 말에 따르면 DATA와 CACHE값은 내부 오라클 커널 작업으로 수행된다고함
일반유저가 설정할 수 있는 값은 ALL 밖에 없다는 말임
자동통계정보 수집 기능 테이블 단위 활성화 (unlock)
1 2 3 | EXEC DBMS_STATS.UNLOCK_TABLE_STATS('JSH','EMP'); PL/SQL procedure successfully completed. |
수동 통계정보 수집
1 2 3 | EXEC DBMS_STATS.GATHER_TABLE_STATS('JSH','EMP'); PL/SQL procedure successfully completed. |
정상 실행됨
+
자동통계정보 수집 기능 테이블 단위 비활성화(lock) 상태에도 수동으로 수집하는 방법
1 2 3 | EXEC DBMS_STATS.GATHER_TABLE_STATS('JSH','EMP',force=>true); PL/SQL procedure successfully completed. |
마지막 인자에 force=>true 을 사용해주면 정상 실행됨
참조 : http://neo-orcl.tistory.com/m/104
https://community.oracle.com/message/12932876#12932876
'ORACLE > Performance Tuning ' 카테고리의 다른 글
오라클 오래걸리는 쿼리 LONG 쿼리 찾기 (5) | 2018.12.19 |
---|---|
[스크랩] SQL튜닝 방법론 (1) | 2018.12.18 |
DISK IO를 많이 발생시키는 SQL 문장을 찾는 쿼리 (0) | 2018.12.12 |
enq HW - contention (0) | 2018.12.05 |
enq UL - contention, PLSQL lock Timer (0) | 2018.12.05 |