Database
Database | DB Query Optimizer의 실행계획 선택시, 고려 비용 요소들
이진유진
2024. 2. 28. 09:51
반응형
DB total cost
데이터베이스 쿼리 실행 계획(Execution Plan)에서의 total cost는
쿼리를 실행하는데 필요한 예상 비용을 나타내는 지표입니다.
모든 행을 반환하는데 걸리는 예상 시간입니다.
Access Method Cost(접근 방식 비용)
- 특정 테이블에 엑세스하기 위해 사용되는 비용으로, 인덱스 스캔, 풀 테이블 스캔 등과 같은 다양한 엑세스 방식이 고려됩니다.
- 인덱스 스캔은 조건에 맞는 행을 찾는데 인덱스를 사용하는 것입니다.
- 풀 테이블 스캔은 전체 테이블을 순차적으로 읽는 것입니다.
- Access Method Cost는 각 엑세스 방식에 대한 비용을 측정하여 최적의 엑세스 방법을 선택하는데 사용됩니다.
Join Cost(조인 비용)
- 두 개 이상의 테이블을 조인할 때 발생하는 비용으로 , 조인 연산에 필요한 작업량과 관련이 있습니다.
- Nested Loop Join, Hash Join, Merge Join과 같은 다양한 조인 알고리즘이 고려됩니다.
- Join Cost는 각 조인 알고리즘에 대한 비용을 측정하여 최적의 조인 방법을 선택하는 데 사용됩니다.
Sorting Cost(정렬 비용)
- ORDER BY 구문이나 정렬된 결과를 생성하는 데 필요한 비용을 측정합니다.
- 정렬 알고리즘의 선택과 정렬 키에 의한 비용을 고려하여 최적의 정렬 방법을 선택합니다.
Filtering Cost(필터링 비용)
- WHERE 구문이나 조건에 따라 행을 필터링하는데 소요되는 비용을 측정합니다.
- 인덱스를 사용하여 필터링하는 경우와 풀 테이블 스캔을 통해 필터링하는 경우 등을 고려하여 최적의 필터링 방법을 선택합니다.
Aggregation Cost(집계 비용)
- GROUP BY 구문이나 집계 함수(ex.SUM, AVG, COUNT)를 사용하여 결과를 집계하는 데 필요한 비용을 측정합니다.
- 대량의 데이터를 집계할 시 추가 비용이 초래됩니다.
- 데이터베이스 옵티마이저는 다양한 실행계획을 생성하고, 각 계획의 총 비용을 계산한 후, 가장 낮은 비용을 가지는 계획을 선택해 쿼리를 실행합니다.
- 집계 함수의 선택과 집계에 필요한 작업량 등을 고려하여 최적의 집계 방법을 선택합니다.
반응형