create table t1(c1 int, c2 int);
create index t1_n1 on t1(c1);
create index t1_n2 on t1(c1, c2);
create index t1_n3 on t1(c2);
gather t1
-----------------------------------------------------------------------------------
기본적으로 사용하던 예
-----------------------------------------------------------------------------------
woong:WOONG >
t1 explain plan for
2 select /*+ index(t1 t1_n1) */
3 *
4 from t1
5 where c1 = 1 and c2 = 1;
해석되었습니다.
경 과: 00:00:00.01
woong:WOONG >
t1 @plan
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------
Plan hash value: 1420382924
-------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 1 (0)| 00:00:01 |
|* 1 | TABLE ACCESS BY INDEX ROWID| T1 | 1 | 26 | 1 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T1_N1 | 1 | | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("C2"=1)
2 - access("C1"=1)
15 개의 행이 선택되었습니다.
경 과: 00:00:00.01
-----------------------------------------------------------
10g 에서 컬럼을 직접 지정하여 사용하는 예
힌트에 하나의 인덱스 컬럼을 사용할 때 단일컬럼 인덱스를 사용
-----------------------------------------------------------
woong:WOONG >
t1 explain plan for
2 select /*+ index(t1 t1(c1)) */
3 *
4 from t1
5 where c1 = 1 and c2 = 1;
해석되었습니다.
경 과: 00:00:00.00
woong:WOONG >
t1 @plan
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------
Plan hash value: 1420382924
-------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 1 (0)| 00:00:01 |
|* 1 | TABLE ACCESS BY INDEX ROWID| T1 | 1 | 26 | 1 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T1_N1 | 1 | | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("C2"=1)
2 - access("C1"=1)
15 개의 행이 선택되었습니다.
경 과: 00:00:00.03
-----------------------------------------------------------
10g 에서 컬럼을 직접 지정하여 사용하는 예
힌트에 두개의 인덱스 컬럼을 사용할 때 결합인덱스를 사용
-----------------------------------------------------------
woong:WOONG >
t1 explain plan for
2 select /*+ index(x t1(c1, c2)) */
3 *
4 from t1 x
5 where c1 = 1 and c2 = 1;
해석되었습니다.
경 과: 00:00:00.00
woong:WOONG >
t1 @plan
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------
Plan hash value: 677322570
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 1 (0)| 00:00:01 |
|* 1 | INDEX RANGE SCAN| T1_N2 | 1 | 26 | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("C1"=1 AND "C2"=1)
13 개의 행이 선택되었습니다.
경 과: 00:00:00.01