OPTIMIZER와 실행계획
1) OPTIMIZER
SELECT , DELETE, UPDATE, INSERT 등의 DML 을 수행할 때 OPTIMIZER 라는 것이 관여하게 된다.
OPTIMIZER는 수행하고자 하는 DML을 가장 효율적으로 처리할 수 있는 최적화 경로를 찾아주는 것이 주 임무이다.
OPTIMIZER는 최적화 경로를 찾아내기 위해서 내부적으로 많은 요인을 고려하게 된다.
어떤 테이블을 먼저 읽을 것인지?
테이블을 읽을 때 인덱스를 이용할 것인지?
인덱스를 이용한다면 어떤 인덱스를 사용할 것인지?
조인이 필요한 경우라면 어떤 방식으로 조인을 할 것인지?
등등의 여러 요인을 결정하여 실행계획을 작성한다.
이 실행계획에 의해 DML이 수행되고 우리는 OPTIMIZER가 선택한 최적화 경로인 수행 경로를 PLAN을 이용해 들여다 볼 수 있다.
2) 실행계획
데이터를 어떠한 경로로 통해 데이터베이스를 ACCESS 했는지를 보여주는 일종의 순서도이다.
오라클이 제공하는 UTLXPLAN.SQL을 실행시키면 PLAN_TABLE이라는 테이블이 생성된다.
이 상태에서 특정 SQL의 수행경로를 보고 싶다면 SQL 앞에 다음 명령을 붙여 실행하면 된다.
EXPLAIN PLAN SET STATEMENT_ID = '임의지정' FOR
수행이 완료되면 수행 경로가 PLAN_TABLE에 결과로 남게 된다.
이 때 STATEMENT_ID라는 컬럼에 위에서 지정한 값들이 들어간다.
참고 : 전문가로 가는 지름길 오라클 실습 P.39
'Oracle > SQL' 카테고리의 다른 글
연산자 (0) | 2021.06.16 |
---|---|
ORDER BY (0) | 2021.06.16 |
WHERE (0) | 2021.06.15 |
CONCATENATION (0) | 2021.06.15 |
ALIAS (컬럼, 테이블) (0) | 2021.06.15 |