tsql 内合并连接

发布于 2024-10-16 13:04:00 字数 263 浏览 4 评论 0原文

我们有一些简单的 sql 查询,通过内连接连接多个表。 索引已存在,并且优化器建议没有丢失索引。

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

数据量是匹配的。

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

为什么会有这些差异?

我们使用的是 ms-sql 2008 r2。

we've got some simple sql-queries, joining several tables with inner joins.
indices are existing, and no missing indices are suggested by optimizer.

the queries run fine on our test-environment and several other systems.
we've applied the sql to another system, and the query breaks down.
runtime on own server: nearly instant.
runtime on new server: about 40 seconds.

the amount of data is matchable.

adding the "merge" hint to the inner join gives the estimated runtimes, known from the own server.

why those differences?

we're on ms-sql 2008 r2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴我老 2024-10-23 13:04:00

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

暗示“合并连接”可能您替换了循环连接。

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

Maybe parallel execution settings and evironment are different on the "slow" system.

Hinting the "merge join" probably you replaced a loop join.

The best way to be sure is to get the query plans generated in the two different systems, and look at differences.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文