[DB Study] 인덱스 활용과 튜닝

Dae-Hee·2021년 3월 23일
0

Oracle Tuning Essential

목록 보기
5/6
post-thumbnail

[DB Study] 인덱스 활용과 튜닝

👉 클러스터링 팩터(Clustering Factior)

  • 칼럼 기준 동일한 값을 갖는 데이터가 모여있는 정도(군집성 계수)
  • 클러스터링 팩터가 좋다는 것은 인덱스 정렬 순서와 테이블 정렬 순서가 서로 비슷하다는 의미이다.
  • Index Scan의 성능 영향을 준다.
-- 클러스터링 팩터 조회
SELECT T.TABLE_NAME
     , I.INDEX_NAME
     , T.BLOCKS
     , T.NUM_ROWS
     , I.CLUSTERING_FACTOR
  FROM USER_TABLES T, USER_INDEXES I
 WHERE I.TABLE_NAME = T.TABLE_NAME
   AND T.TABLE_NMA IN ('비교대상_1', '비교대상_2');
   
 /*
     I.CLUSTERING_FACTOR 의 값이
     T.BLOCKS 수에 가까울수록 좋고
     T.NUM_ROWS 수에 가까울수록 나쁘다.
 */  
   

👉 인덱스 비효율 판단

  • 최종 결과로 집계되는 건 수(TABLE ACCESS ... A-Row)가 아래 인덱스의 데이터 추출(INDEX OOO SCAN ... A-Row)와 크게 차이가 있을때
  • 추출한 건 수(A-Row)에 비해 인덱스 블록을 접근한 건 수(Buffers)가 많을때
  • 무분별한 인덱스 추가는 추후에 더 큰 문제가 발생할 수 있다.

👉 기준 정보 테이블 효율 증가

SELECT T.A_COL
     , T.B_COL
     , I.NAME
  FROM MASTER T
     , CODE I
 WHERE T.CD = I.CD; 
  • Join 대상 칼럼인 CD 뿐만 아니라 조회문에 들어가는 NAME 칼럼까지 인덱스 포함 되어있다면 명칭만을 위해 테이블에 방문하는 상황을 막을 수 있어 성능을 개선할 수 있다.

👉 인덱스 스캔 범위 계산

  • 등치(=) 조건과 범위 조건이 같이 있을 경우 인덱스의 순서가 중요하다.
  • 분포도가 좋은 등치 조건에 해당하는 칼럼을 우선순위로 둔다.

👉 인덱스 기본 설계 기준 및 전략

  • 등치(=) 조건으로 사용되고 자주 사용되는 컬럼을 앞쪽으로 만든다.
  • 등치(=) 조건으로 사용되고 값의 수가 적은 칼럼을 앞쪽으로 만든다.
  • 자주 사용되는 칼럼을 선정한다.
  • 테이블 랜덤 액세스를 줄인다.
  • 정렬을 대신한다.



📖 참고 문헌 : 오라클 튜닝 에센셜

0개의 댓글