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가 선정됨

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...