2011-02-08 77 views
0

我们已经有了一些简单的sql查询,将多个表连接到内部连接。 指数已存在,并且优化器没有建议缺失索引。tsql内部合并连接

查询在我们的测试环境和其他几个系统上运行良好。 我们已经将sql应用到另一个系统,并且查询出现故障。在自己的服务器上的运行时间:几乎是瞬间的。新服务器上的运行时间为 :大约40秒。

数据量是可匹配的。

将“合并”提示添加到内部连接可提供从自己的服务器获知的估计运行时间。

为什么这些差异?

我们在ms-sql 2008 r2上。

+1

在不给你合并连接的服务器上它给你什么类型的连接?实际行数和估计行数之间是否存在很大差异? (您可以在实际的执行计划中看到这一点)检查自动创建统计信息和自动更新统计信息是否已打开。 – 2011-02-08 11:16:13

回答

1

也许并行执行设置和环境在“慢”系统上是不同的。

暗示“合并连接”可能你取代了循环连接。

确保最好的方法是获得在两个不同系统中生成的查询计划,并查看差异。