일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 포화이진트리
- 동적계획법
- 순회
- dfs
- 링킹
- Java
- 웹개발
- 인오더
- 11724
- 1707
- 연결요소
- 그래프
- 알고리즘
- 프로그래머스
- 백준
- Bottom Up
- DynamicProgramming
- 완전이진트리
- 포스트오더
- BFS
- 이진트리
- JAVA_HOME
- 9093
- 자바
- 이분그래프
- n진법게임
- 피보나치
- 도커
- 전공자따라잡기
- 바인딩
- Today
- Total
물음표 살인마
[ORACLE]실행 계획(Execution Plan) 확인하는 법 본문
[기초지식]
[SQL 옵티마이저]
사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 엑세스 경로를 선택해주는 DBMS 핵심 엔진.
쿼리를 수행하는 데 후보군이 될만한 실행계획들을 찾아낸다
데이터 딕셔너리에 미리 수집해 둔 오브젝트 통계 밑 시스템 통계정보를 이용해 각 실행계획의 예상 비용을 산정한다.
최저 비용을 나타내는 실행계획을 선택한다.
Execution Plan(실행계획) 은 옵티마이저가 생성한 처리절차를 사용자가 확인할 수 있게 트리 구조로 표현한 것.
실행계획 확인을 통해 SQL이 테이블을 스캔하는지, 인덱스를 스캔하는지, 어떤 인덱스를 스캔하는지 확인할 수 있고 변경할 수 있다.
1. sql plus 이용하기
1-1. 기존 오라클에서 실행계획을 확인하려면 우선 plan_table을 생성해야 했다.
* ?는 $ORACLE_HOME 디렉토리를 대체하는 기호
위의 스크립트를 통해 plan_table을 생성할 수 있다.
1-2. 하지만 10g 버전부턴 오라클이 기본적으로 sys.plan_table$ 테이블을 만들고 'PLAN_TABLE'으로 synonym도 생성하기 때문에 사용자가 별도로 1-1 과정을 수행할 필요 없다.
1-3 실행계획 확인
explain plan 명령어를 실행하면 실행계획이 plan_table에 저장된다.
편하게 보려면 listsize 넉넉하게 잡아주기
오라클이 제공하는 ultxpls.sql 스크립트로 실행계획 확인 가능하다.
근데 어차피 이건 예상 실행계획이고 대부분 이렇게 실행하지만
다른방식으로 실행하는 경우도 있다고 함.
(실제 실행계획 확인하는 법은 추후 포스팅..)
---다른 방법도 있어서 추가
Autotrace 활성화하고 실행하면 결과가 안뜨고 실행계획이 뜬다
2. 쿼리 툴에서 이용하기
sql developer : F10
orange: ctrl + E
SQLGate: F7
단축키를 이용한다.
아래는 sql developer
3. 더 많은 정보 활용하기
sql plus 에서 explain plan 명령어 수행 직후 바로 위 명령어를 수행하면 더 많은 정보를 볼 수 있다.
이건 공부 다 하고 난 후 무슨 정보인지 확인해야지...!
세번째 인자에는 다양한 옵션을 사용 가능하다