메뉴 건너뛰기

bysql.net

1._SQL과_옵티마이저

2012.04.06 02:36

dasini 조회 수:3611

 

 

             . 4세대 언어 : DBMS에 명령을 날릴 대도 SQL이라고 하는 구조화된 질이된어를 통해 원하는 결과 집합을 요구할뿐 그

                                     결과집합을 얻기 위한 처리 절차를 개발자가 직접 기숙하지 않기 때문 

             . 옵티마이저 : 우리를 대신해 프로그래밍해주는 존재

             . 실행 계획 : 옵티마이저에 의해 생성된 처리 절차를 사용자가 확인할 수 있도록 트리 구조로 표현한 것

 

Execution Plan
--------------------------------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=250 Card=367 Bytes=51K)
   1    0   UNION-ALL
   2    1     PX COORDINATOR
   3    2       PX SEND (QC (RANDOM)) OF 'SYS.:TQ10006' (Cost=247 Card=366 Bytes=51K) (PARALLEL_TO_SERIAL) (QC (RANDOM))
   4    3         HASH (GROUP BY) (Cost=247 Card=366 Bytes=51K) (PARALLEL_COMBINED_WITH_PARENT)
   5    4           PX RECEIVE (Cost=247 Card=366 Bytes=51K) (PARALLEL_COMBINED_WITH_PARENT)
   6    5             PX SEND (HASH) OF 'SYS.:TQ10005' (Cost=247 Card=366 Bytes=51K) (PARALLEL_TO_PARALLEL) (HASH)
   7    6               HASH (GROUP BY) (Cost=247 Card=366 Bytes=51K) (PARALLEL_COMBINED_WITH_PARENT)


              . 최소 비용 최적의 경로를 선택하여 사용자가 원하는 작업을 가장 효율적으로 수행할수 있는 프로시저를 자동으로

                생성해주는 DBMS의 핵심기능(CBO)

 


 . 옵티마이저의 최적화 수행단계

 

              1. 사용자가 던진 쿼리를 위해, 후보군이 될만한 실행계획을 찾음
              2.  데이터 딕셔너리에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정
              3.  각 실행계획의 비용을 비교해서 최소 비용을 갖는 하나를 선택