본문 바로가기

Oracle/admin

index rebuild or bitmap index 대상 추출

/*  인덱스의 blevel이 4 이상 나타는 대상 analyze 명령문 추출 */

SELECT I.OWNER,I.TABLE_NAME,I.INDEX_NAME,T.NUM_ROWS,I.BLEVEL,S.BYTES/1024/1024 "MB",'ANALYZE INDEX '||I.OWNER||'.'||I.INDEX_NAME||' VALIDATE STRUCTURE;' ANLY_INDEX
FROM DBA_INDEXES I,
     DBA_TABLES T,
     DBA_SEGMENTS S
WHERE I.OWNER = T.OWNER
AND T.OWNER = S.OWNER
AND I.TABLE_NAME = T.TABLE_NAME
AND T.TABLE_NAME = S.SEGMENT_NAME
AND S.SEGMENT_TYPE = 'TABLE'
AND I.OWNER  NOT IN ('SYS','SYSTEM','OUTLN','WMSYS','DBSNMP','EXFSYS','SYSMAN','XDB','ORANGE')
ORDER BY I.BLEVEL DESC



/*위 결과로 추출된 명령어로 특정 index 분석 */ 

ANALYZE INDEX MESAPUSER.IX_M17_INST_SEQ_BAK_N3 VALIDATE STRUCTURE;




/* 분석결과 : PCT_DELETED 가 20이 넘어가면 Rebild 고려, DISTINCTIVENESS 가 높으면 분포도가 높다는 의미이며

   이러한 경우 Rebuild 대상이 아닌 bitmap index 생성을 고려해야함 */
 SELECT NAME,
 DEL_LF_ROWS*100/DECODE(LF_ROWS, 0, 1, LF_ROWS) PCT_DELETED,
 (LF_ROWS-DISTINCT_KEYS)*100/ DECODE(LF_ROWS,0,1,LF_ROWS) DISTINCTIVENESS
 FROM INDEX_STATS

'Oracle > admin' 카테고리의 다른 글

락 세션 조회 및 KILL 방법  (0) 2016.09.06
주요 성능분석지표 SQL  (0) 2016.09.05
Purge Scheduler Job Log  (0) 2016.08.30
ORACLE RAC ON/RAC OFF  (0) 2016.08.30
Oracle10g crs 관련 커맨드  (0) 2016.08.03