【发布时间】:2019-08-18 08:24:33
【问题描述】:
我对 DB2 数据库上的 SQL 查询运行了两个查询的执行计划。第一个查询的开销大约是380000,修改查询后用子查询替换了一些内连接,开销降到了312(注意:不是312000,只是312)
但是,在多次运行每个查询后,较大的查询平均运行得更快。这可能是什么原因?
【问题讨论】:
-
您的子查询是什么?它们是否涉及与 varchars 的比较?
-
如果这是一个 DB2 问题,为什么该问题标记为 Oracle?
-
可能是您的数据库统计数据过时,估计的成本有误。可能是高成本计划实际上可以在多个线程/内核上并行运行;所以正在做更多的工作,仍然使用更多的资源,但从你的角度来看仍然需要更少的时间。 SO评论或答案中有太多可能的原因。
标签: sql db2 sql-execution-plan