1. EXPAIN PLAN 명령어는
1) 옵티마이져가 SELECT, UPDATE, INSERT, DELETE을 실행하기 위해 선택한 실행계획을 보여준다.
2) 실행계획이란 옵티마이져가 특정 SQL문을 실행하기 위해 수행한 일련의 동작(OPERATIONS)을 트리형식으로 표현한 것이다.
3) EXPAIN PLAN의 결과는 사용자로 하여금 옵티마이져가 왜 특정 실행계획을 선택했는지를 이해할 수 있게 해주고 쿼리문의 성능을 판단하는데 도움을 준다.
2. 실행계획은 다음과 같은 정보를 포함하고 있다.
1) 쿼리문이 참조한 테이블들의 순서
2) 쿼리문이 참조한 테이블들의 접근방법(ACESS PATH)
3) 조인에 의해 영향받는 테이블들의 조인방법(JOIN MEHTOD)
4) 데이터 조작방법(filter, sort, or aggregation,etc)
3. EXPLAIN PLAN 과 EXECUTION PLANS
- EXPLAIN PLAN 의 결과와 EXECUTION PLANS는 서로 다를 수 있다. 서로 다른 데이터베이스를 참조하거나, 같은 데이터베이스의 서로 다른OBJECTS를 참조하는 경우 차이가 발생한다. 설혹 같은 데이터베이스의 같은 OBJECT를 참조할지라도 다음과 같은 요인에 의해 달라질 수가 있다.
1) Data volume and statistics
2) Bind variable types and values
3) Initialization parameters - globally or session level
4. EXPLAIN PLAN는 사용자가 다음과 같은 피해야하는 항목들을 파악할 수 있게 해준다.
1) Full scans : 의도하지 않은 Full scans
2) Unselective range scans : 100건을 조회하기 위해 백만건을 스캔하는 경우
3) Late predicate filters : ?
4) Wrong join order : 잘못된 조인순서는 처리범위를 증가시킨다.
5) Late filter operations : 필터로 버릴 것이 있다면 조인 전에 필터하는 것이 좋다.
5. EXPLAIN PLAN 의 제약사항
1) 바이드변수에 대해서는 정확한 실제계획을 보여주지 못한다.
2) 암묵적인 형변환에 대해서도 정확한 예측을 하지 못한다.
IT/SQL
- PLAN 정보의 의미 2015.09.25
- mariaDB 프로시저 샘플 2015.09.25
- 오라클(oracle) 그룹함수(group by) String 그룹핑 하기 2015.09.25
- 오라클 계정 생성 2015.09.25
- ms sql 커서 2015.09.25
- SQL 횡전개 응용 ORACLE 기준 기본 2011.04.15
- SQL 횡전개 응용 ORACLE 기준 응용 2011.04.15
- Bulk bind 대량 데이터 처리 2009.01.08
- sql 원하는 자리에 - 넣기 2009.01.08
- sql 원 단위를 백만원 단위로 보여주기 2009.01.08
PLAN 정보의 의미
2015. 9. 25. 10:13
mariaDB 프로시저 샘플
2015. 9. 25. 10:11
오라클(oracle) 그룹함수(group by) String 그룹핑 하기
2015. 9. 25. 10:10
오라클 계정 생성
2015. 9. 25. 10:08
ms sql 커서
2015. 9. 25. 09:44
SQL 횡전개 응용 ORACLE 기준 기본
2011. 4. 15. 13:33
SQL 횡전개 응용 ORACLE 기준 응용
2011. 4. 15. 13:32
Bulk bind 대량 데이터 처리
2009. 1. 8. 17:30
sql 원하는 자리에 - 넣기
2009. 1. 8. 17:26
이것 말고 더좋은거 있나요?
있으면 알려주세요
sql 원 단위를 백만원 단위로 보여주기
2009. 1. 8. 17:23
이렇게 하면 되는데 더 좋은거 아시면 알려주세요.