【发布时间】:2014-04-25 15:41:34
【问题描述】:
我正在优化一个 oracle 查询。我发现我的新查询的成本低于原来的查询。我认为我的新查询可能比旧查询具有更好的性能。但是网上很多人说“COST 列不能用来比较执行计划”。所以我的问题是,如果你不检查解释计划中的成本,你怎么知道一个查询的性能比另一个更好?还有其他方法吗?谢谢!
【问题讨论】:
-
如果您想获得有关使用
explain的指南,那么可能是错误的地方。 -
@gary 。 . .关于特定查询和两个执行计划的问题适用于 Stack Overflow。关于比较执行计划的一般性问题过于宽泛。
-
这个问题不是太宽泛。通常
cost有点毫无价值,但如果您只有有解释计划,那么成本就是比较计划的最佳方式。乔纳森·刘易斯(Jonathan Lewis)写了一本关于基于成本的优化器的书,他写过这个问题here。一个相关的引用:“......比较两个查询的成本以查看优化器认为哪一个会更快是完全有效的,但是由于优化器的限制和缺陷,这样做可能并不完全明智。”
标签: sql oracle plsql oracle-sqldeveloper