본문 바로가기
공부/SQLP

3)SQL수행구조 - 2. SQL 처리 과정

by Wanado 2025. 1. 15.
728x90

1. 구조적, 집합적, 선언적 질의 언어

오라클은 PL/SQL  , SQLServer T-SQL처럼 절차적 프로그래밍 기능을 구현할 수 있는 확장 언어도 제공하지만,

SQL은 기본적으로 구조적,집합적,선언적 질의 언어.

결과는 구조적 집합적이지만 만드는 과정은 절차적이다.

>> 그런 프로시저를 만들어네는 DBMS내부 엔진이 바로 SQL 옵티마이저.

2. SQL처리 과정

3. SQL옵티마이저

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

최적화단계

1. 후보군이 될만한 실행계획 찾기

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

3. 최저 비용을 나타내는 실행계획 선택

4. 실행계획과 비용

5.옵티마이저 힌트

Oracle  /*+   */ SQL Server
-테이블 힌트
테이블명 다음에 WITH절을 통해 지정.
fastfirstrow, holdlock, nolock 등

-조인힌트
FROM 절에 지정하며 두 테이블 간 조인전략에 영향.
loop,hash,merge,remote 등

-쿼리힌트
쿼리당 맨 마지막에 한번만 지정할 수 있는 쿼리 힌트는 다음과 같이 OPTION절을 이용한다.

힌트가 무시되는 경우

-뭄법오류

-의미오류 (서브쿼리에 unnest와 push_subq를 같이 기술한 경우)

-잘못된 참조

-논리적으로 불가능 (조인절에 등치 조건이 없는데 해시조인을 유도하거나 null허용칼럼에 대한 인덱스를 이용해 전체 건수 세기

-버그

 

728x90

'공부 > SQLP' 카테고리의 다른 글

3)SQL수행구조 - 1. 데이터베이스 아키텍처  (0) 2025.01.15