본문 바로가기

카테고리 없음

SQLP - SQL처리과정

반응형

SQL(Structure Query Language - 구조적 질의 언어)

구조적 / 질의적 / 선천적

Parser > Optimizer > Row-source Generator > SQL Engine

 

 

사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 엑세스 경로를 선택해주는 dbms의 핵심 엔진

수행절차 : 쿼리를 수행할만한 후보 실행계획 생성 > 데이터 딕셔너리(Data Dictionary)에 수집해 둔 오브젝트 통계, 시스템 통계를 이용해 예상비용 산정 > 최저 비용을 나타내는 실행계획 선정

 

 

 

 

SQL 옵티마이저

사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 엑세스 경로를 선택해주는 dbms의 핵심 엔진

수행절차 : 쿼리를 수행할만한 후보 실행계획 생성 > 데이터 딕셔너리(Data Dictionary)에 수집해 둔 오브젝트 통계, 시스템 통계를 이용해 예상비용 산정 > 최저 비용을 나타내는 실행계획 선정

비용(cost)

쿼리를 수행하는 동안 발생할 것으로 예상한 I/O 횟수 또는 예상 소요시간

옵티마이저가 여러 통계정보를 활용해서 계산해낸 값

실측치가 아님

 

옵티마이저 힌트

통계정보가 정확하지 않거나 다른 이유로 옵티마이저가 잘못된 판단을 할 수 있음

이런 때 직접적으로 관여하여 더 좋은 실행계획으로 유도하는 매커니즘

힌트가 무시되는 경우 : 문법적으로 안맞는 경우 / 의미적으로 안 맞게 기술한 경우 / 잘못된 참조를 사용한 경우 / 논리적으로 불가능한 액세스 경로를 사용한 경우

사용자로부터 주어진 명령어(directives)로 인식

데이터베이스의 변경으로 힌트에 문제가 생긴 경우 DBMS마다 차이가 있다는 점을 인지하고, 변경 시 어플리케이션의 특성에 따른 적절한 조치가 필요(SQL Server는 에러 발생, Oracle은 에러 없음)

 

 

 

반응형