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)를 사용하여 결과를 집계하는 데 필요한 비용을 측정합니다. 
  • 대량의 데이터를 집계할 시 추가 비용이 초래됩니다. 
  • 데이터베이스 옵티마이저는 다양한 실행계획을 생성하고, 각 계획의 총 비용을 계산한 후, 가장 낮은 비용을 가지는 계획을 선택해 쿼리를 실행합니다. 
  • 집계 함수의 선택과 집계에 필요한 작업량 등을 고려하여 최적의 집계 방법을 선택합니다.
반응형