ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL파싱과 최적화
    S T U D Y/DataBase 2023. 8. 24. 19:58
    728x90
    반응형

    SQL의 정의

    Structrued Query Language. 구조적 질의 언어

     

    SQL의 최적화

    1. SQL파싱

     - 사용자로부터 SQL을 전달 받음 -> 파서가 파싱 진행(파싱 트리 생성 -> Syntax체크 -> Semantic체크)

    2. SQL최적화

     - 옵티마이저가 그 역할을 맡음

     - 데이터베이스 성능을 결정하는 가장 핵심적 엔진 

    3. 로우 소스 생성

     - 옵티마이저가 선택한 실행 경로를 실제 실행 가능한 코드나 프로시저 형태로 포맷팅 함

     

    SQL옵티마이저의 역할

    사용자가 원하는 역할을 가장 효율적으로 수행할 수 있는 최적의 데이터 액세스 경로를 선택해주는 DBMS엔진

     

    1. 사용자로부터 전달 받은 쿼리를 수행하며 나올 수 있는 실행계획을 찾아냄

    2. 데이터 딕셔너리에 미리 수집해 둔 오브젝트 통계 및 시스템 통계정보로 각 실행계획의 예상비용을 산정

    3. 최저 비용을 가진 실행계획을 선택

     

    오라클 힌트 사용법

    1. 여러 개의 힌트를 사용할 때

    /* INDEX(A A_X01) INDEXBB_X03) */ 

     

    2. 주의할 점

    (1) 힌트와 힌트 사이를 나열한다고 콤마를 쓰면 안 됨.

    /* INDEX(A A_X01), FULL(DD) */ 

    --> 그럼 맨 앞에 AA_X01만 유효 힌트

     

    (2) 테이블명 알리아스를 줬다면 힌트에도 알리아스 사용해야 함. 

     EX) 

    SELECT /* FULL(A.EMP_NO) */

       FROM EMP A

    --> 반대로 테이블명에 알리아스가 없으면 힌트에도 알리아스 없어야 함.

     

    SQL공유 및 재사용

    1. 파싱

     - 소프트 파싱 : SQL을 DB Buffer cache에서 찾아 실행단계로 바로 넘어가는 것

     - 하드 파싱 : 찾는데 실패해서 최적화, 로우 소스 생성 단계까지 거치는 것

     

     

    728x90
    반응형

    댓글

Designed by Tistory.