행위

인덱스 사용 내용 검사

DB CAFE

thumb_up 추천메뉴 바로가기


오라클 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