Q&A
Q&A
엔코아의 제품과 서비스에 대한 기술지원 Q&A입니다.
여러분의 질문에 신속하게 답변 드릴 수 있도록 최선을 다하겠습니다.
Re : [manager] plan에서 선택한 operations 문장으로 쿼리문장 보기..
- 작성일2007/03/16 15:12
- 조회 5,766
어디서 실행계획을 확인하셨는지, Oracle의 Version은 얼마이신지 알 수 없기에 정확한 답변을 드릴 수 없습니다만, 말씀하신 내용을 유추하여 보면 실행계획의 각 row를 클릭하면 해당 실행계획이 수립되게 된 원 SQL의 구문을 바로 확인할 수 있었으면 한다는 내용으로 해석하였습니다.
우선 9i 이상에서 filter predicate, access predicate라는 실행계획상의 별도의 Operation이 추가가 되었습니다.
어떤 것이 실행계획의 Access Path이며, 어느 부분이 Filtering된 부분인지 알 수 있습니다.
그 부분에 인덱스를 사용하게 된 구문, Table을 Full Scan하거나 Join한 구문을 모두 확인하실 수 있습니다.
예를 들면
select *
from s_emp a, s_dept b
where a.dept_id = b.id
and a.id = 10
라는 SQL에서 Join구문은 a.dept_id = b.id
access구문은 a.id = 10이라는 것입니다.
이것을 실행계획에서 확인해보면
NESTED LOOPS
TABLE ACCESS BY INDEX ROWID S_DEPT
INDEX UNIQUE SCAN S_DEPT_ID_PK "A"."DEPT_ID"="B"."ID"
TABLE ACCESS BY INDEX ROWID S_EMP
INDEX UNIQUE SCAN S_EMP_ID_PK "A"."ID"=10
DA# Manager 에서 실행계획을 확인한 것이며 oracle Version은 9204입니다.
감사합니다.