关于 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
------解决方案--------------------我想问楼主两次查询的时候间隔多久,如果间隔很近的话,会造成误区的,第一次查询会生成缓存的,请注意下,另外再看看索引!