옵티마이저란 데이터베이스 관리 시스템(DBMS)에서 SQL 쿼리의 성능을 최적화하기 위한
중요한 컴포넌트이다 쿼리를 실행하는 가장 효율적인 방법을 자동으로 결정하여
데이터 검색 속도를 향상시키고 리소스 사용을 최소할 수 있다.
쿼리 변환 (Query Transformation)
- 옵티마이저는 쿼리를 재작성하여 더 효율적인 실행 계획을 만들 수 있다
- WHERE 조건의 순서를 변경하거나 서브쿼리를 조인으로 변환
비용 기반 최적화 (Cost-Based Optimization, CBO)
- 다양한 실행 계획의 "비용을" 가장 낮은 비용을 가진 계획을 선택한다
- 비용은 I/O 작업, CPU 사용량, 메모리 사용량, 네트워크 비용등을 기반으로 계산된다
규칙 기반 최적화
- 미리 정의된 규칙에 따라 실행 계획을 선택한다
옵티마이저가 중요한 이유
- 성능 최적화 옵티마이저는 동일한 결과를 제공하는 여러 실행 방법 중 가장 효율적인 방법을 선택하므로
데이터베이스 성능이 향상된다.
- 개발자가 직접 최적화하지 않앋 SQL 쿼리를 효율적으로 실행할 수 있다
-데이터 크기나 통계 정보가 변경되더라도 자동으로 최적의 실행 계획을 재조정할 수 있다