제3장 인덱스 튜닝
제1절 인덱스 기본 원리
제2절 테이블 액세스 최소화
제3절 인덱스 스캔 효율화
제4절 인덱스 설계
인덱스 | 특정컬럼에 대해 빠르게 검색할수 있도록 도와주는 데이터 구조 색인을 제공하여 B-트리나 비트냅구조로 구현 |
||
종류 SELECT INDEX_NAME ,INDEX_TYPE FROM DBA_INDEXES |
B-tree 인덱스 | 기본 데이터가 정렬된 상태로 유지 - oracle index_type : NORMAL |
|
비트맵 인덱스 | 작은 카디널리티(데이터종류)를 가진 컬럼에 적합 | ||
해시 인덱스 | 범위검색에는 부적합 | ||
함수기반인덱스 | 컬럼의 함수결과 인덱스 생성, 함수기반검색지원 | ||
장단점 | 장점 | 1. 검색속도 향상 2. 쿼리 성능개선 3. 특정조건 효율적 접근 |
|
단점 | 1. 쓰기(insert, update, delete)시 성능저하 2. 인덱스관리 복잡성 증가. 3. 디스크 공간소모 |
||
인덱스 리빌딩 | 인덱스 조각, 성능저화 | ALTER INDEX idx_emp_dept REBUILD; | |
테이블 접근 최소화 | 1. 인덱스 활용 | where, join, order by , group by 자주 사용되는 컬럼에 인덱스 추가. | |
2. 커버링 인덱스 | 쿼리에서 요구하는 모든 데이터가 인덱스에 포함되도록. | ||
3. 정규화 | 중복데이터 줄임 | ||
4. 복합인덱스 | |||
인덱스 스캔 효율화 | 1. 인덱스 범위 스캔 | 범위값을 조회하는 방식 between, >=, <= 조건에서 사용 | |
2. 인덱스 전역스캔 | 모든 항목스캔, 조건에 맞는 항목찾음 | ||
3. 인덱스 힌트 | |||
4. 조인최적화 | 조인연산 사용컬럼 인덱스 추가 | ||
5. 다중컬럼인덱스 | |||
인덱스 설계 | 1. 쿼리분석 | 자주 실행되는 쿼리, 사용컬럼 | |
2. 비용-이익분석 | 읽기 성능향상, 쓰기 성능저하비교 | ||
3. 주요쿼리 | 가장 자주사용하는 컬럼에 추가. | ||
4. 인덱스 유지보수 | 정기적으로 인덱스 점검, 필요없는 인덱스 제거. | ||
5. 부가인덱스 | 쿼리 성능향상, 디스크공간, 오버헤드 고려. | ||
6. 데이터베이스 통계 업데이트 | EXEC DBMS_STATS.GATHER_TABLE_STATS('schema', 'employees'); |
'Data' 카테고리의 다른 글
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제5장 SQL 옵티마이저 (0) | 2024.07.19 |
---|---|
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제4장 조인 튜닝 (0) | 2024.07.15 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제2장 SQL 분석 도구 (0) | 2024.07.04 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제1장 SQL 수행 구조-아키텍처, I/O (0) | 2024.06.24 |
[1028 SQL]Ⅱ. SQL 기본과 활용-제3장 DML, TCL, DDL, DCL, 절차형SQL(프로시저) (0) | 2024.06.24 |