1.不加hints的情况下,由于在object_id列上创建了唯一索引,执行计划走的是索引。
SQL> set autot on explain
SQL> select count(*) from test where object_id=100;
COUNT(*)
----------
1
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 INDEX (UNIQUE SCAN) OF 'PK_TEST' (UNIQUE)
2.加hints,强制进行全表扫描。
SQL> select /*+ full(test)*/ count(*) from test where object_id=100;
COUNT(*)
----------
1
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=2 Card=1 Bytes=13)
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'TEST' (Cost=2 Card=3 Bytes=39)
可见,加hints后执行了全表扫描,不再走索引。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10972173/viewspace-259956/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10972173/viewspace-259956/