오라클의 옵티마이저는 사용자가 호출한 SQL에 대해 최적의 실행 계획을 도출해준다. 도출 기준은 SQL문 자체 분석과 각종 통계 정보이다. 쿼리 플랜(Query plan) 또는 쿼리 실행 계획 (Query execution plan)은 SQL 관계형 데이터베이스 관리 시스템의 데이터 접근에 사용되는 순서가 있는 단계별 집합이다.
SQL이 선언형이기 때문에 주어진 쿼리를 실행하기 위해 수
많은 방법이 존재하는 것이 일반적이며 이에 따라 다양한 성능 차이를 보인다. 쿼리가 데이터베이스에 제출되면 쿼리 옵티마이저는 쿼리 실행을 위한 각기 다른 가능성 있는 올바른 플랜 중 일부를 평가한 다음 최적의 옵션을 고려할때 반환한다.
쿼리 옵티마이저가 불완전하기 때문에 데이터베이스 사용자와 관리자들은 더 나은 성능을 얻기 위해 옵티마이저가 만들어내는 플랜을 수동으로 검사하고 튜닝해야 하는 경우가 있다.
(1) 실행 계획 분석
실행 계획 분석은 다음의 두 가지 기본 원칙을 바탕으로 한다.
- Operation 항목 중 가장 오른쪽에 있는 문자열부터 수행한다.
- Operation 항목 중 가장 오른쪽에 있는 문자열이 두 개 이상이라면(같은 Depth에 있다면) 위에서부터 수행한다.
EXPLAIN PLAN -- EXPLANIN PLAN 선언부
SET STATEMENT_ID = 'PLAN1' INTO PLAN_TABLE -- SQL에 PLAN1이라는 ID 부여
FOR
SELECT
*
FROM
META.META_LYR_INFO A,
META.META_VEC_INFO B
WHERE
A.LYR_ID = B.LYR_ID;--SQL 입력부
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY -- PLAN_TABLE에 저장된 실행계획 조회
('PLAN_TABLE','PLAN1','ALL'));
수행 순서(ID 기준)
2 -> 3 -> 1 -> 0
'DB > Oracle' 카테고리의 다른 글
[SQL 튜닝] 1. 튜닝 실습 준비를 위한 사전 준비 (1) | 2023.05.19 |
---|