메뉴 건너뛰기

bysql.net

2._SQL_처리과정

2012.04.06 02:38

dasini 조회 수:21666

 

 

           .  소프트 파싱 : 파싱 단계에서 SQL 커서를 메모리에서 찾아 곧바로 실행단계로 넘어가는것
           .  파드파싱 : 최적화 및 ROW-SOURCE 생성 단계를 거치는 것


Call     Count CPU Time Elapsed Time       Disk      Query    Current       Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse        1    0.003        0.003          0         14          0          0
Execute      1    0.000        0.000          0          0          0          0
Fetch       68    0.000        0.002          0         79          0        668
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total       70    0.003        0.005          0         93          0        668

Misses in library cache during parse: 1

--> SQL 커서를 찾지 못해 하드 파싱

 

Misses in library cache during parse가 0 이었다면 최초 수행 할때부터 이미 다른 세션에  의해 커서가 캐싱


(1)  SQL 파싱
            . SQL 파서   :   사용자가 던진 SQL을 가장 먼저 받아서 처리
                            1.    SQL 문장을 이루는 개별 구성요소를 분석하고 파싱해서  파싱 트리를 만듬
                                 ->    SQL에 문법적 오류가 없는지 Syntax체크
                             2.    Semantic 체크를 통해 의미상 오류가 없는지 확인
                                ->    존재하지 않거는 권한 없는 오브젝트를 사용했을때 오류
                            3.    해싱 알고리즘을 이용해 해당 SQL 커서가 Shared Pool에 캐싱돼 있는지 확인

 

(2)  SQL 최적화
           .  옵티마이저가 최적화를 수행할 때 세부적으로 아래의 서브 엔진을 사용
            . Query Transfomer    :   사용자가 던진 SQL을 최적화하기 쉬운 형태로 변환
            . Plan Generator    :    하나의 쿼리를 수행하는데 있어, 후보군이 될만한 실행계획 들을 생성
             . Estimator    :    쿼리 오퍼레니션 각 단계의 선택도, 카디널리티, 비용을 계산하 고 실행계획 전체에 대한 총 비용을 계산,

                                        각 단계를 수행하는데 필요한 I/O, CPU, 메모리 사용량 등을 예측하기 위해 데이터베이스 오브젝트 통계정보와

                                         하드웨어적인 시스템 성능 통계정보를 이용
          
            . 5개의 테이블을 조인하려면 5! 의 실행계획을 평가 해아함 

                  ->   현실적으로 모든 실행계획을 평가하는 것은 불가능 하므로 오라클은 지능적인  테크닉 사용
                               1. Adaptive Search Strategy     :    총 수행 시간에 비해 쿼리 최적화에 걸리는 시간이 일정비율을 넘지 않도록 적응적 탐색 전략

                               2. Multiple Initial ordering heuristic    :    최적의 실행계획을 발견할 가능성이 높은 순서대로비용을 평가

 

 (3) Row-Source Generation
            . 개념 수준의 실행계획

                  -> 실행 가능한 코드 또는 프로시저 형태로 포맷팅하는 작업이 필요함

                  -> Row-Source Gerator가 담당
            . 하드 파싱은 CPU를 많이 소비하는 작업 
            .  내부적으로 많은 데이터 딕셔너리 조회를 수반함
            . 파싱과정을 거친 SQL커서를 재사용할 수 있도록 캐싱해두는 공간 -> 라이브러리 캐시