最近要给一些全表扫描的sql做优化,首先想到的就是建索引啦。
查了下网上资料说where 中有is null 或is not null的话是不会用到索引的,但我在测试的时候发现is null 是的确不会用索引,但is not null 会用哦!
还有一些人说某一列要是含有null值,即使在这一列建立索引也没用,但我实际测试的时候发现即使那一列有null值也是可以用索引的!
我建索引的名称以IDX开头,这样查询起来就方便了:
select * from all_indexes where INDEX_NAME like '%IDX%'
在PL/SQL下可以在SQL window下写你的sql语句,然后按 ‘ F5’ 就可以打开执行计划窗口了,从这里可以看到oracle是否采用了索引。
全表扫描的:
采用索引的:
其中cost 越少越好!