본문 바로가기

04번. IT 힌트얻기/▶ DB Tuning

[Tuning] 인덱스 매칭률


인덱스 매칭률

특정 테이블에 대해서 SQL 상의 주어진 조건으로 인해 사용될 수 있는 인덱스가 두 개 이상이라고 할 때 Optimizer는 조건에 가장 적절한 인덱스를 선택해서 사용해야 한다.
이와 같이 주어진 조건에 가장 적절한 인덱스를 선택해서 사용하고자 할 때 이용하는 원리이자 기준을 "인덱스 매칭률"이라고 한다.

인덱스 매칭률
= WHERE 절에서 1st컬럼 부터 연속된 컬럼에 대해 상수화 된 조건에 '='을 사용한 컬럼의 개수 / 인덱스를 구성하는 컬럼의 총 개수

Optimizer의 인덱스 선택 시 판단 절차
1) 주어진 조건에 대한 각 인덱스 별로 매칭률을 계산하여 매칭률이 높은 것을 우선적으로 선택
2) 인덱스 별 매칭률이 같을 경우 인덱스를 구성하는 컬럼의 개수가 많은 것을 우선적으로 선택
3) 인덱스 별 매칭률과 인덱스를 구성하는 컬럼의 개수가 같을 경우에는 가장 최근에 생성된 것을 우선적으로 한다.

RBO는 위의 일련의 규칙을 절대적으로 따른다.
RBO인 경우 인덱스 매칭률로 인한 허점이 있다.
CBO는 위의 규칙을 따르긴 하되 항상 비용이라는 것을 고려한다.

'04번. IT 힌트얻기 > ▶ DB Tuning' 카테고리의 다른 글

[Tuning] Nested Loop Join (튜닝포인트)  (0) 2011.10.10
[Tuning] optimizer_mode  (0) 2011.10.10
[Tuning] CBO vs RBO  (0) 2011.10.10
[Tuning] SQL Trace  (0) 2011.10.10
[실행계획] Exercise_04  (0) 2011.10.07