Oracle/SQL2021. 6. 15. 14:40

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
Posted by 자수성가한 부자