CS/DataBase

(ORACLE) SQL 문 분석과 공유 풀

주누 2019. 12. 5. 22:43

SQL 문과 일반 프로그래밍 언어의 차이점은 무엇일까?

SQL문은 처리방법을 옵티마이저가 대신하고 프로그래밍 언어는 처리방법을 사용자가 직접 구현해야한다.

즉, SQL문은 사용자가 질의를 하면 옵티마이저가 처리를 대신하기에  질에 따르는 결과만 확인하면 된다.

(내부가 어떻게 돌아가는지 몰라도 코딩이 가능)

 

서버 프로세스와 분석

오라클은 어떤 알고리즘을 사용하여 비용을 측정하는 것일까? -> 비용기반 분석을 통해서

비용기반 : 처리시간이 가장 빠르고 I/O 수가 적은 방법을 판단하는 알고리즘

 

 

비용을 계산하기 위한 기초 수치, 통계정보

그렇다면 비용은 어떤 방식으로 측정하는가? -> 통계정보

그림으로 배우는 오라클 구조 인용(4장)

오라클 10g 부터는 자돋으로 통계수집을 처리한다.

 

만약 아래의 쿼리를 실행한다고 가정해보자...!

SELECT *
  FROM A,B
 WHERE A.ID = B.ID
   AND A.VALUE = 1
   AND B.VALUE = 1
;

대부분의 사람들은 WHERE조건이 있는 그대로 차례대로 위에서 부터 밑으로 실행된다고 생각한다.

하지만 그릇된 판단이다.

오라클은 옵티마이저가 어떠한 조건을 먼저 실행하면 빠를지를 스스로 판단하여서 최적의 성능이 이끄는 곳으로 조건을 실행한다.


그림으로 공부하는 오라클 구조
국내도서
저자 : 오다 케이지 / 이민재역
출판 : 제이펍 2015.09.10
상세보기