이전에 통계정보 확인은 테이블에 대한 건수가 얼마나 있는지를 알아봤다면, 이번에는 인덱스를 기준으로 살펴보도록 하겠습니다.
ALL_IND_STATISTICS 에서도 같은 정보확인이 가능합니다.
알아보는 SQL은 아래와 같습니다.
SELECT TABLE_NAME
,INDEX_NAME
,BLEVEL /* 리프블록 도달까지 읽는 블록수 */
,LEAF_BLOCKS /* 인덱스 리프 블록 총 개수 */
,NUM_ROWS /* 인덱스 저장된 레코드 개수 */
,DISTINCT_KEYS /* '=' 조건으로 조회할 때 읽는 리프블록 수
,AVG_LEAF_BLOCKS_PER_KEY /* '=' 조건으로 조회할 때 읽는 테이블블록 수 */
,CLUSTERING_FACTOR /* 테이블이 모인 정도
테이블레코드를 찾을 때 읽게 될 테이블 블록개수의 개산한 수 */
,SAMPLE_SIZE
,LAST_ANALYZED
FROM ALL_INDEXES
WHERE TABLE_NAME = '테이블명'
ORDER BY NUM_ROWS DESC
,DISTINCT_KEYS DESC
;
새로 만든 테이블인 경우, 통계정보에 나타나지 않거나 데이터건수가 존재하지만 0으로 표현될 경우가 있습니다. 이런 경우에는 DBA등 관리자에게 해당 테이블의 통계정보를 재생성해달라고 해야 합니다.