DataBase/MS-SQL

2017-11-29

hiro1983 2017. 11. 30. 00:54

DBMS가 쿼리를 분석하여 데이터를 가장 효율적으로 추출하는 방법을 스스로 판단해야 하는 과정을 "쿼리 최적화" 라고 하며

이를 담당하는 구성 요소를 "쿼리 최적화기" 또는 "옵티마이저"라고 한다.


최적화를 수행하는 방법은 CBO, RBO 가 존재한다.


CBO : 비용을 추산하여 예상 비용이 가장 낮은 계획을 선택하여 실행계획을 생성한다.

RBO : 미리 정해놓은 규칙에 따라 실행계획을 생성한다.


SQL Server는 CBO 기반이다.


실행계획 : 사용자가 요청한 SQL을 최적으로 수행하고자 SQL Server가 내부적으로 수립한 일련의 처리 절차


예상 실행계획 : 어떤 절차로 실행될지 미리 확인하고자 할 때 사용 (X-Ray)

실제 실행계획 : 실제로 실행하고서 어느 곳에서 어떤 부하가 나타났는지 확인하고자 할 때 사용 (MRI)


Index Scan : 해당 인덱스를 처음부터 끝까지 모두 액세스

Index Seek : 인덱스를 1회 탐색


실행계획은 같은 레벨에서는 위에서 아래로 내려가고, 계층 레벨에서는 오른쪽(하위)에서 왼쪽(상위)으로 올라간다.