oracle 性能优化操作五:尽量去掉 "<>"

来源:互联网 发布:讷河监狱事件 知乎 编辑:程序博客网 时间:2024/04/28 05:50

【本文转载自:http://blog.csdn.net/helloboat/article/details/42453863,对作者表示感谢。】


oracle 性能优化操作五:尽量去掉 “<>”
尽量去掉 “<>”,避免全表扫描,如果数据是枚举值,且取值范围固定,则修改为”OR”方式。
例:

UPDATE SERVICEINFO SET STATE=0 WHERE STATE<>0;

以上语句由于其中包含了”<>”,执行计划中用了全表扫描(TABLE ACCESS FULL),没有用到state字段上的索引。
实际应用中,由于业务逻辑的限制,字段state为枚举值,只能等于0,1或2,而且,值等于=1,2的很少。因此可以去掉”<>”,利用索引来提高效率。
修改为:

UPDATE SERVICEINFO SET STATE=0  WHERE STATE = 1 OR STATE = 2 ;

进一步的修改可以参考“oracle 性能优化操作四”。

0 0
原创粉丝点击