본문 바로가기

use-the-index-luke

D.9 Optimizer

use-the-index-luke 저자 Markus Winand


Markus Winand는 SQL에 대한 통찰력을 제공하고 다양한 시스템이 SQL을 지원하는 방법을 modern-sql.com 에서 보여줍니다. 이전에 그는 use-the-index-luke.com 을 만들었는데, 지금도 활발하게 유지되고 있습니다. Markus는 winand.at 를 통해 강사, 연사 및 컨설턴트로 고용될 수 있습니다.


You can upload a Korean translation of use-the-index-luke.com on your blog

Thank you from the bottom of my heart to author Makus Winand for allowing me.

These are translations that I use for studying by using a papago (google translate)

The translations may not be correct or there may be a typo.

I'd appreciate it if you could point it out in the comments.



use-the-index-luke.com 의 한글번역본을 블로그에 업로드 해도 된다고

허락해주신 Makus Winand 저자님께 진심으로 감사합니다.

이 번역본들은 제가 공부용도로 번역기(papago, google transrate)를 돌려서

번역한 내용들이라 맞지 않거나, 오타가 있을수 있습니다.

댓글로 지적해주시면 감사하겠습니다.


https://use-the-index-luke.com/sql/glossary/query-optimizer-query-planner

Optimizer(Oracle), Qurey Optimizer(SQL Server, MySQL)

또는 Query Planner(PostgerSQL)는 컴파일러가 소스 코드를 실행 파일로 변환하는 것과 마찬가지로 SQL 문을 실행 계획의 형태로 실행 프로그램으로 변환합니다.

일반적으로 두 가지 종류의 옵티마이저가 있습니다:

Rule Based Optimizer (RBO)

Rule Based Optimizer는 실행 계획을 만들기 위해 엄격한 규칙 집합을 따릅니다.

예를 들어, 가능하면 항상 인덱스를 사용합니다.

Cost Based Optimizer (CBO)

Cost Based Optimizer 는 다양항 실행 계획을 생성하고 모든 실행 계획에 비용 모델을 적용한 후 실행에 가장 적합한 비용값을 가진 실행 계획을 선택합니다.

예를 들어, 비용 기반 최적화 도구는 인덱스를 사용하여 쿼리에 대한 예상 비용을 전체 표를 읽는 비용과 비교합니다. 비용값이 인덱스 조회보다 전체 테이블 액세스가 더 효율적임을 나타내는 경우 Optimizer가 전체 테이블 액세스를 선택할 수 있습니다.

비용 기반 최적화 도구가 주요 구현입니다.

Optimizer의 주요 결정 사항은 다음과 같습니다:

  • 결합 알고리즘 및 결합 순서 선택
  • 인덱스 사용량

Optimizer는 다음 행동을 수행하지 않습니다:

  • 테이블 또는 인덱스 최적화
  • 난독화된 SQL 최적화
  • 데이터 조각 모음

Link


'use-the-index-luke' 카테고리의 다른 글

D.11 Secondary Index  (0) 2024.04.02
D.10 Parsing  (2) 2024.03.29
D.8 Index-Organized Table  (0) 2024.03.21
D.7 Index-Only Scan  (0) 2024.03.18
D.6 Index Filter Predicates  (1) 2024.03.14