有一次做实验,产生了以下的疑惑:
oracle 执行计划里的cost(%CPU)与consistent gets之间是什么关系? 为什么会存在consistent gets大,而 Cost 小的情况?
一般不都是cost小,越有利于SQL优化,相应的consistent gets应该小才对。
看了一本优化书 ,解答如下:
真正决定性能的是 cost的高低 和 真实完成的时间time 。
一般COST越小性能越高,oracle执行计划的选择就是由COST来决定的。
在逻辑读方面,在绝大部分情况下,逻辑读越少,性能越快,大多数情况下可以做为调优的依据,但有些场合并不适用。如以上情况,COST值小,但consistent gets值大。
相对来说,COST除了考虑IO,也考虑了CPU等开销。