A. 옵티마이저 정의
1. SQL은 사용자의 요구사항만 기술
2. 처리과정에 대한 기술은 하지 않음
3. 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할
4. 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행
5. 최적의 실행 방법이 실행계획(Execution Plan)
B. 규칙기반 옵티마이저
1. 인덱스 유무와 SQL 문장에서 사용하는 연산자의 종류 그리고 SQL문에서 참조하는 객체의 종류 등을 참조해 실행계획을 생성
2. 인덱스를 이용한 액세스 방식이 전체 테이블 액세스 방식보다 우선순위가 높음
3. SQL순위에서 이용 가능한 인덱스가 존재한다면 엑세스 기법전체 테이블 액세스 방식보다는 항상 인덱스를 사용하는 실행계획을 생성
C. 비용기반 옵티마이저(CBO)
1. 규칙기반 옵티마이저의 단점을 극복하기 위해 출현
2. SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택
3. 테이블, 인덱스, 칼럼 등의 다양한 객체 통계정보와 시스템 통계정보 등을 이용
4. 통계정보가 없는 경우 정확한 예측이 불가능해 비효율적인 실행계획을 생성할 수 있음
D. 실행계획
1. 실행계획(Execution Plan)이란 SQL에서 요구한 사항을 처리하기 위한 절차와 방법
2. SQL을 어떤 순서로 어떻게 실행할 지를 결정
E. 실행계획 정보 구성 요소
1. 조인 순서(Join Order) : 테이블 액세스 순서
2. 조인 기법(Join Method) : NL, HASH, SORT MERGE JOIN이 있음
3. 액세스 기법(Access Method) : 테이블에 접근하는 방법
4. 최적화 정보(Optimization Information) : 각 단계마다 예상되는 비용을 표시
5. 연산(Operation): 여러 가지 조작을 통해서 원하는 결과를 얻어내는 일련의 작업
F. SQL 처리 흐름도
1. 실행계획 시각화 : 실행계획으로 생성한 SQL문의 내부적인 처리절차를 시각적으로 표현한 도표
2. 조인 순서 : 테이블을 먼저 엑세스 순서
3. 액세스 기법 : 테이블 엑세스를 인덱스 스캔 또는 테이블 전체 스캔 테이블로 했는지 여부
4. 조인 기법 : NL 조인, HASH 조인, MERGE 조인
5. SQL 처리 흐름도 일량 표시
6. SQL 처리를 위해 작업한 건수 또는 처리 결과 건수를 표시
7. 비효율이 발생한 단계 확인
[용어/개념] 서비스 모니터링 - Metric, 수집 방식, Nagios, Zabbix, SLI, SLO, 구글 SRE조직
[SQLD] 3-10. SQL 기본 - 예상문제풀이 (Question&Answer)
[용어/개념] Network - OSI 7 Layer 기본