-
인덱스가 있지만 사용하지 못하는 경우Database & SQL 2019. 7. 13. 14:14
▣ 인덱스가 있지만 사용하지 못하는 경우
① 인덱스 컬럼의 변형에 의한 FULL TABLE SCAN
EX> SELECT * FROM CUSTOMER WHERE SUBSTR(MOBILE_NO,1,7) = '0109284';
인덱스 컬럼의 명시적 또는 암시적 변형이 있으면 인덱스를 사용 할 수 없다.
② 부정형 비교 연산자
EX> SELECT * FROM CUSTOMER WHERE ID <> '05652222';
부정형 비교 연산으로는 B*Tree를 수직적/수평적 탐색을 효율적으로 할수 없기 때문에 FULL TABLE SCAN 이 발생 한다.
③ NULL 조회
EX> SELECT * FROM CUSTOMER WHERE ID IS NULL;
NULL은 비교가 불가능 하기 때문에 B*Tree를 수직적/수평적 탐색을 효율적으로 할수 없기 때문에 FULL TABLE SCAN 이 발생 한다.※참고
NULL 은
- 제어불가
- 비교불가
- 연산불가▣ INDEX를 통해서 데이터를 찾는 원리
B* Tree 인덱스는 Root 노드 에서 Branch 노드를 거쳐서 목적지인 Leaf 노드에 도달할 때
까지 계속해서 값을 비교해 가면서 목적지에 도달 한다 . B* Tree 인덱스의 데이터를 찾는 원리
는 비교 이다.'Database & SQL' 카테고리의 다른 글
ORACLE 시간 연산 경과 시간 계산 쿼리 (0) 2019.08.09 Optimizer 통계정보관리 (0) 2019.07.06 세션(Session) 모니터링 (0) 2019.06.29 DBMS 아키텍처 - 논리적 저장구조 (0) 2019.06.29 Index Scan vs Full Table Scan (0) 2019.06.29