|
关于inlist iterator,我的理解是无论inlist内有多少elements,cbo都只执行一次索引訪問,但剛看了一下执行计划为何执行了6(starts)次index range scan,假如这个index很大,岂不是很低效
请哪为帮忙解惑或阐释一下inlist iterator的运作机制,与CONCATENATION有何不同,谢谢
select /*+gather_plan_statistics index(t1)+*/ * from t1 where object_id in(1,2,3,4,5,6)
Plan hash value: 3400061858
---------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers |
---------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | | 32 (100)| | 20 |00:00:00.01 | 34 |
| 1 | INLIST ITERATOR | | 1 | | | | | 20 |00:00:00.01 | 34 |
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------------------------------------
| 2 | TABLE ACCESS BY INDEX ROWID| T1 | 6 | 24 | 2232 | 32 (0)| 00:00:01 | 20 |00:00:00.01 | 34 |
|* 3 | INDEX RANGE SCAN | IDX_T1 | 6 | 24 | | 7 (0)| 00:00:01 | 20 |00:00:00.01 | 14 |
---------------------------------------------------------------------------------------------------------------------------------
|
|