--搞了4个全表扫描,说明oracle是想走的,但是估计内部代码BUG,导致事实没有走,还触发了BUG
SQL> show release
release 1102000100
SQL> SELECT/*+OR_EXPAND(m object_name) index(m)*/ object_name FROM m WHERE object_name IN ('A','B');
执行计划
----------------------------------------------------------
Plan hash value: 2589773310
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 26 | 1716 | 1185 (1)| 00:00:15 |
| 1 | CONCATENATION | | | | | |
|* 2 | TABLE ACCESS FULL| M | 12 | 792 | 296 (1)| 00:00:04 |
|* 3 | TABLE ACCESS FULL| M | 1 | 66 | 296 (1)| 00:00:04 |
|* 4 | TABLE ACCESS FULL| M | 12 | 792 | 296 (1)| 00:00:04 |
|* 5 | TABLE ACCESS FULL| M | 1 | 66 | 296 (1)| 00:00:04 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("OBJECT_NAME"='B')
3 - filter("OBJECT_NAME"='B' AND
LNNVL(SYS_OP_DESCEND("OBJECT_NAME")=HEXTORAW('BEFF') ))
4 - filter("OBJECT_NAME"='A' AND
SYS_OP_DESCEND("OBJECT_NAME")=HEXTORAW('BEFF') )
5 - filter("OBJECT_NAME"='A' AND
SYS_OP_DESCEND("OBJECT_NAME")=HEXTORAW('BDFF') AND
LNNVL(SYS_OP_DESCEND("OBJECT_NAME")=HEXTORAW('BEFF') ))
Note
-----
- dynamic sampling used for this statement (level=2)