일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- lombok
- 고전역학
- GPT-4's answer
- 유닉스
- 코틀린
- 자바
- Java
- 자바네트워크
- android
- 리눅스
- 뉴턴역학
- NIO
- flet
- kotlin
- 자바암호
- GIT
- write by chatGPT
- 웹 크롤링
- Database
- 시스템
- write by GPT-4
- JVM
- oracle
- chatGPT's answer
- 파이썬
- 인프라
- 소프트웨어공학
- Spring boot
- 역학
- python
- Today
- Total
Akashic Records
옵티마이저의 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가 선정됨
'오래된글 > DataBase' 카테고리의 다른 글
한달을 요일별로 구함 (0) | 2018.04.15 |
---|---|
인덱스 컬럼의 매칭율 높이는 방법 (0) | 2018.04.15 |
Oracle LOCK걸린 Session Kill (0) | 2018.04.15 |
Oracle - 숫자 함수 (0) | 2018.04.09 |
Oracle - 변환 함수 (0) | 2018.04.09 |