2011년 6월 1일 수요일

옵티마이저의 Index 선택 기준

옵티마이저의 Index 선택 기준

1. equal(=) 조건으로 사용되는 where 절의 컬럼 중에서 매칭율이 높은 것을 선택

인텍스 매칭율 = 질의문에서 처음부터 연속해서 equal 조건으로 사용된 인텍스 컬럼 개수/인덱스를 구성하는 컬럼 개수

2. 인덱스 매칭율을 계산할 때 선행하는 컬럼 순서로 연속된 경우만을 인정

예)
emp_ix emp.deptno
dpt_pk dept.deptno

select a.empno, a.ename, b.dname
from emp a, dept b
where a.deptno = b.deptno
and a.deptno = 20

emp_ix 인덱스 매칭율 100%, dept_pk 인덱스 매칭율 0%
emp_ix인덱스를 사용하게 되며 emp 테이블이 드라이빙 테이블로 선정

select a.empno, a.ename, b.dname
from emp a, dept b
where a.deptno = b.deptno
and b.deptno = 20

emp_ix 인덱스 매칭율 0%, dept_pk 인덱스 매칭율 100%
dept_pk 인덱스를 사용하게 되면서 dept 테이블이 드라이빙 테이블로 선정

예)
select a.b.c.d from table
where A='가'
and B like '나'%
and C='다'
and D='라'

A_INDEX=A+B+C+D 25%
B_INDEX=A+E 50%
C_INDEX=A+D+E+F 50%
D_INDEX(최근생성)=A+C+F+E 50%

인덱스 컬럼 매칭율이 100% 인 경우에 unique 인덱스가 있는 경우라면 uniue 인덱스를 선택
똑같은 인덱스 매칭율 50% 이지만 컬럼수가 많은 C_INDEX, D_INDEX가 우선하고, 그중에 최근에 생성된 D_INDEX가 선정됨

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...