실행계획: 사용자가 sql을 실행하여 데이터를 추출하려고 할 때 옵티마이저가 수립하는 작업절차
1. sql 해석
2. 실행계획 수립
3. 실행
실행계획 확인 방법
1. explain plan : 실행계획만 확인 가능
2. set autotrace : 한 번의 명령으로 여러 개의 sql에 대한 실행계획을 바로 볼 수 있음
옵티마이저 : 사용자가 실행한 sql을 해석하고 데이터를 추출을 위한 실행계획을 수립하는 프로세스, 속도 결정함
종류
1. RBO : 초창기 버전
- 기본적으로 15개의 순위가 매겨진 규칙이 있음, 이를 기반으로 실행계획 수립
- 계획이 여러개면 순위가 높은 규칙 사용
RANK | |
1 | Rowid에 의한 1 row |
2 | 클러스터 조인 |
3 | unique나 pk를 사용한 해시 클러스터 키 |
... | ... |
2. CBO : 10G부터 기본 설정
- 대상 row들을 처리하는데 필요한 자원 사용을 최소화해서 데이터를 빨리 처리하는데 목적
- 통계정보 이용 : cbo의 성능을 최적의 상태로 유지시키기 위한 테이블, 인덱스, 클러스터 등을 대상으로 통계 정보를 생성
- 정기적으로 분석 작업이 필요
통계정보 확인하기
analyze table emp compute statistics
select table_name, num_rows, last_analyzed
from user_tables
where table_name
반응형
'CS(Computer Science) > 데이터베이스' 카테고리의 다른 글
[ORACLE] PL/SQL에서 쿼리 소요시간 확인하기 (0) | 2023.12.29 |
---|---|
[ORACLE] 데이터 많을 때 count(*) 빠르게하기 (1) | 2023.11.06 |
[ORACLE] SQL 튜닝 (1) | 2023.09.04 |
[ORACLE] 인덱스 타는 방법 (1) | 2023.09.04 |
[ORACLE] 인덱스 접근 (0) | 2023.09.04 |
댓글