인덱스 2

SQL튜닝 입문 - INDEX 활용 불가능 케이스

1. 인덱스 사용하면 안되는 경우- 조건에 의한 처리 범위가 넓어짐으로써 분포도가 나빠지는 경우, 이 때 인덱스 스캔보다 FULL TABLE SCAN을 하는 것이 낫다 →FULL TABLE SCAN할 경우, 한 번의 I/O 때 마다 여러 개의 데이터 블록을 처리하기 때문에 I/O횟수가 감소함2. 인덱스 사용 불가능한 경우1) NOT 연산자 사용SELECT *FROM EMPWHERE EMPNO != '1234';SELECT *FROM EMPWHERE EMPNO '1234'; 2) IS NULL, IS NOT NULL 사용SELECT *FROM EMPWHERE EMPNO IS NULL; 3) 옵티마이저 취사 선택옵티마이저의 자의적 판단에 의해서 인덱스를 사용할 수도 있고, 사용하지 않을 수 있는 경우> 옵..

프로그래밍 2025.01.12

SQL튜닝 입문 - INDEX, 결합INDEX

1. 필요성- 일반적으로 테이블의 전체 데이터 중에서 10~15% 이하의 데이터를 처리하는 경우에 효율적2. B* TREE 구조- 가장 많이 사용되는 인덱스 구조, 데이터 저장 방식- ROOT/BRANCH/LEAF NODE 구성- BRANCH NODE: 조회하려는 값이 있는 LEAF 노드까지 도달하기 위해 비교/분기해야 될 값들이 저장됨LEAF NODE = 인덱스 칼럼의 값 + ROWID(저장위치정보) - ORDER BY에 의한 SORT를 피할 수 있음- MAX/MIN의 효율적 처리가 가능3. 인덱스 선정 절차1) 프로그램 개발에 이용된 모든 테이블에 대하여 Access Path 조사2) 인덱스 칼럼 선정 및 분포도 조사3) Critical Access Path 결정 및 우선순위 선정4) 인덱스 칼럼의 ..

프로그래밍 2025.01.12