인덱스 사용 내용 검사
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
오라클 Index 모니터링 - 안쓰는 인덱스 찾기 (index monitoring)[편집]
-- 인덱스 모니터링 시작
alter index <인덱스명> monitoring usage;
-- 인덱스 모니터링 중지
alter index <인덱스명> nomonitoring usage;
사용되지 않았거나 사용빈도가 낮은 Index 를 도출하여 Drop가능 여부를 점검한 후 정리한다면 해당 테이블에 DML 이 가해지는 과정에서 Index 조정 부하를 줄일 수 있어 성능 향상 기대
SELECT a.table_owner
,a.table_name
,a.index_name
,a.uniqueness
,b.*
FROM (SELECT i.table_owner
,i.table_name
,i.owner
,i.index_name
,i.uniqueness
FROM dba_indexes i
WHERE i.owner IN ('SCOTT', 'CYKIM')
AND i.table_name NOT LIKE 'X_%' ESCAPE '\') a
,(SELECT t.operation
,t.options
,t.object_owner
,t.object_name
,t.object_type
,SUM(t.cost) AS cost_sum
,SUM(t.cardinality) AS cardinality_sum
,COUNT(*) AS used_count
FROM x_sql_plan t
,x_sql s
,dba_users u
WHERE t.snap_phase LIKE '201312_CLOSING'
AND t.operation = 'INDEX'
AND t.sql_id = s.sql_id
AND s.parsing_user_id = u.user_id
AND t.object_owner IN ('SCOTT', 'CYKIM')
AND u.username NOT IN ('SYS', 'SYSTEM')
AND t.object_name NOT LIKE 'X_%' ESCAPE '\'
GROUP BY t.operation
,t.options
,t.object_owner
,t.object_name
,t.object_type) b
WHERE a.owner = b.object_owner(+)
AND a.index_name = b.object_name(+)
ORDER BY a.table_owner
,a.table_name
,a.uniqueness
,a.index_name