반응형
DBMS는 SQL을 실행하기전에 아래와 같은과정을 거쳐 최적화를 진행한다.
1. SQL파싱
실행할 SQL을 전달받으면 SQL파서가 파싱진행
- 파싱트리 생성
- Syntax체크 : 문법적오류가 없는지 체크
- semantic 체크 : 의미상 오류가 없는지 체크
2. SQL최적화
옵티마이저가 실행한다. 미리 수집한 시스템 및 오브젝트 통계정보를 바탕으로 다양한 실행경로를 생성해서 비교 한 후 가장 효율적인 하나를 선택
3. 로우소스 생성
※ SQL 옵티마이저란?
사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터액세스 경로를 선택해주는 DBMS의 핵심엔진
※ 옵티마이저 Hint
옵티마이저가 항상 최선의 선택을 하는것은 아니다. DB에 Insert, delete등 연산이 일어날 경우 인덱스를 이상하게 선택하는 경우가 발생한다. 그런상황에 대비하여 개발자가 더 효율적인 인덱스를 탈 수 있도록 설정 해주는 것
반응형
'컴퓨터공학 기초 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터 저장구조 (0) | 2020.05.03 |
---|---|
[데이터베이스] 소프트 파싱과 하드 파싱 (0) | 2020.04.26 |
[데이터베이스] org.postgresql.util.PSQLException:CODE[0]STATE[22001]ERROR: value too long for type character varying(1) (0) | 2020.04.16 |
[데이터베이스] 테이블설계 및 컬럼추가시 주의사항 (0) | 2020.04.08 |
[데이터베이스] 트랜잭션이란 ? (0) | 2020.02.29 |
댓글