------------------ -------- ------------------------------------
?OBJECT_ID? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER
? OBJECT_NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VARCHAR2(128)
? OBJECT_TYPE? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VARCHAR2(19)
SQL> analyze table a compute statistics;
?Table analyzed.
?Dbms_stats.gather_table_stats;
?SQL> create unique index ind_a on a(object_id);
?Index created.
SQL> set autot traceonly exp
如果根据object_id来查询,是会走唯一性扫描。

但是如果查看所有object_id的值,就会走全表扫描。如果查看object_id为null的行,发现时0条。

如果加入了not null约束,就会走fast full scan了。

可见null值对于索引扫描的影响确实是非常巨大,需要在写sql语句的时候提前注意到这个问题。