2014년 5월 21일 수요일

오라클 11g 쿼리 옵티마이저(Oracle 11g Query Optimizer)란? [ORACLE/SQL/HINT/오라클/교육/강의/강좌/SQL교육/오라클 PLSQL/강의/강좌/오라클교육/ORACLE초보교육/오라클실무강좌]

오라클 11g 쿼리 옵티마이저(Oracle 11g Query Optimizer)란? [ORACLE/SQL/HINT/오라클/교육/강의/강좌/SQL교육/오라클 PLSQL/강의/강좌/오라클교육/ORACLE초보교육/오라클실무강좌]

오라클의 쿼리 옵티마이저(Query Optimizer, Optimizer)란 오라클에 내장된 소프트웨어로 SQL문장을 실행하기 위한 가장 효과적인 실행경로를 결정하는 역할을 한다. 

데이터베이스는 SQL문장을 full table scans, index scans, nested loops, and hash joins등 여러가지 방법으로 실행하는데 옵티마이저는 관련 테이블의 여러가지 요소와 쿼리문의 조건등을 고려하여 실행계획을 결정하게 된다. 

옵티마이저는 대개 아래와 같은 과정을 거쳐서 실행계획을 만들어 낸다. 

1. Optimizer는 가능한 액세스 경로와 힌트구문에 따라 SQL 문에 대한 잠재적인 실행계획의 
  집합을 생성한다. 
  
2. Optimizer는 데이터 딕셔너리안의 통계정보를 바탕으로 각 실행계획의 비용을 추측한다. 
  통계정보는 테이블이나 인덱스등의 데이터의 흩어진정도나 저장파라미터등을 포함하고 있다. 
  옵티마이저는 각 실행계획(Access Path, Join Order)의 비용을 자원의 사용, I/O양, CPU, Memory 사용에 준하여 계산한다. 
  
3. Optimizer는 실행계획을 비교하여 최소의 비용(Cost)이 드는 실행계획을 선택한다. 

댓글 없음:

댓글 쓰기