日期:2014-05-17  浏览次数:20798 次

关于 Oracle 的条件查询效率的问题,请Oracle高手讲解讲解。
Oracle 10G
一个77个字段的表,现表中数据有四百五十多万条。

执行以下语句进行查询查询

SELECT WI00 FROM INFOR WHERE WI05 = 141 AND WI28 = 'COLLABORATIVE'

所需时间要2秒左右,但如果我只写一个条件

SELECT WI00 FROM INFOR WHERE WI05 = 141

所需时间只要0.1秒左右。

按我本来的理解是查询语句的条件越多、越准确,查询的效率越快。但现在这个结果却让人费解。

请高手讲解讲解这是为什么,谢谢!

------解决方案--------------------
加了条件不走索引的话,反而更慢
------解决方案--------------------
查看下執行計劃有什麼不同,如果有一列有索引,一列沒有應該也不會是full scan的,有索引的列應也會按索引的
------解决方案--------------------
WI05 这字段设置索引了吧?

第一个sql 时间都耗在过滤WI28
------解决方案--------------------
我想问楼主两次查询的时候间隔多久,如果间隔很近的话,会造成误区的,第一次查询会生成缓存的,请注意下,另外再看看索引!