실행 계획 : SQL이 수행되는 절차

SQL을 작성한 후에는 바로 어플리케이션에 적용하기 전에 실행 계획을 확인하여 문제점을 파악하는 것이 좋다.

SQL을 통해 결과를 추출하는 과


- 테이블 관련 실행계획
- 인덱스 관련 실행 계획
- 정렬 관련 실행 계획
- 연산자 관련 실행 계획
- 데이터 연결 관련 실행 계획
- 파티션 관련 실행 계획
- 기타 실행 계획



테이블 엑세스 방법


- BY INDEX ROWID - 인덱스 스캔을 통한 테이블 엑세스
- FULL SCAN - 테이블 전체 스캔
- BY USER ROWID - 정의된 ROWID에 의한 테이블 엑세스
- SAMPLE - 표본 데이터 추출


1. 가장 일반 적인 BY INDEX ROWID 실행 계획

SQL> SELECT COLUNM_1,  COLUNM_2
         FROM TABLE_NAME
         WHERE  COLUNM_3 BETWEEN '20070301' AND '20070331'



실행계획>

SELECT STATEMENT
    TABLE ACCESS (BY INDEX ROWID) OF ' TABLE_NAME '
        INDEX (RANGE SCAN) OF ' COLUNM_3_IDX'



- TABLE_NAME 테이블의 COLUMN_3 컬럼에 인덱스가 존재한다면 해당 인덱스에 엑세스하는 순간 인덱스로부터 ROWID가 제공됨.
- 인덱스는 인덱스를 구성하는 컬럼과 ROWID로 이루어진다.
- WHERE 조건인 COLUMN_3 컬럼의 값을 만족하는 데이터에 엑세스하면 해당 인덱스 값들 옆에는 ROWID가 있으며, 이 ROWID를 통해 테이블에 엑세스한다.
- 인덱스로부터 제공받은 ROWID를 이용하여 TABLE_NAME 테이블에 엑세스 한다.

- ROWID는 주소와 같은 역할을 한다. (유일한 하나의 값)





 
신고
Posted by jeonguk