메뉴 건너뛰기

bysql.net

2._SQL_처리과정

2012.04.06 02:38

dasini 조회 수:21667

 

 

           .  소프트 파싱 : 파싱 단계에서 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커서를 재사용할 수 있도록 캐싱해두는 공간 -> 라이브러리 캐시

   

번호 제목 글쓴이 날짜 조회 수
26 3._SQL트레이스 sapius 2012.04.04 26850
25 8._Statspack_AWR 시와처 2012.04.01 11485
24 7._Response_Time_Analysis_방법론과_OWI file 시와처 2012.04.01 5743
23 6._V$SYSTEM_EVENT 시와처 2012.04.01 3310
22 4._동시성_구현_사례 [1] dasini 2012.03.27 11696
21 5._오라클_Lock file 시와처 2012.03.26 12577
20 3._비관적_vs._낙관적_동시성_제어 dasini 2012.03.26 6185
19 2._AutoTrace 남송휘 2012.03.26 2920
18 1._Explain_Plan 남송휘 2012.03.26 4328
17 3장._오라클_성능_관리 남송휘 2012.03.26 2896
16 2._트랜잭션_수준_읽기_일관성 file AskZZang 2012.03.20 6145
15 1._트랜잭션_동시성_제어 AskZZang 2012.03.20 4667
14 11._Shared_Pool 박영창 2012.03.19 3163
13 10._대기_이벤트 박영창 2012.03.19 10373
12 9._Snapshot_too_old 박영창 2012.03.19 9734
11 8._블록_클린아웃 시와처 2012.03.19 12009
10 7._Consistent_vs._Current_모드_읽기 file 시와처 2012.03.18 5499
9 2장._트랜잭션과_Lock AskZZang 2012.03.17 5251
8 6._문장수준_읽기_일관성 file 정찬호 2012.03.12 57274
7 4._Redo file 남송휘 2012.03.12 5379