[sqld] 4. SQL 최적화 기본 원리

·2022년 4월 3일
0

SQL개발자자격증

목록 보기
4/4

옵티마이저

👉🏼 다양한 실행방법들 중에서 최적의 실행방법을 결정하는 것이 옵티마이저의 역할

  • 규칙 기반 옵티마이저 : 규칙(우선순위)을 가지고 실행계획을 생성한다.

  • 비용 기반 옵티마이저 : SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택하는 방식이다.

비용기반 옵티마이저는 통계정보, DBMS 버전, DBMS 설정 정보 등의 차이로 인해 동일 SQL문도 서로 다른 실행계획이 생성될 수 있다. 또한 비용기반 옵티마이저의 다양한 한계들로 인해 실행계획의 예측 및 제어가 어렵다는 단점이 있다.


인덱스 특징과 종류

👉🏼 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 기능

DML작업은 테이블과 인덱스를 함께 변경해야하기 때문에 느려질 수 있다.

  • 트리 기반 인덱스

👉🏼 DBMS에서 가장 일반적인 인덱스는 B-트리인덱스

👉🏼 리프블록은 인덱스를 구성하는 데이터와 해당 데이터를 가지고 있는 행의 위치를 가리키는 레코드 식별자(RID)로 구성되어 있다.

👉🏼 '='로 검색하는 일치 검색과 'BETWEEN'등의 범위 검색 모두 적합하다.

  • SQL Server의 클러스터형 인덱스

👉🏼 클러스터형 인덱스, 비클러스터형 인덱스

👉🏼 클러스터형 인덱스의 중요성 2가지

1) 인덱스의 리프페이지가 곧 데이터 페이지

2) 리프페이지의 모든 로우는 인덱스 키 컬럼 순으로 물리적으로 정렬되어 저장 됨

0개의 댓글