gpt4 book ai didi

sql - 链接服务器表上的 INNER JOIN 比子查询慢得多

转载 作者:行者123 更新时间:2023-12-02 22:52:15 26 4
gpt4 key购买 nike

我遇到了这种非常奇怪的情况,我想我应该把它扔给人群来找出原因。

我有一个连接链接服务器上的表的查询:

select a.*, b.phone
from table_a a,
join remote.table_b b on b.id = a.id
(lots of data on A, but very few on B)

这个查询一直在说话(甚至从未发现实际的运行时间),就在那时我注意到 B 没有索引,所以我添加了它,但这并没有解决问题。最后,出于绝望,我尝试了:

select a.*, b.phone
from table_a a,
join (select id, phone from remote.B) as b on b.id = a.id

至少在我看来,这个版本的查询应该具有相同的结果,但是你瞧,它立即响应了!

有什么想法为什么一个会挂起而另一个会快速处理吗?是的,我确实在运行两者之前等待确保索引已构建。

最佳答案

这是因为有时(很多时候)由sql server引擎自动生成的执行计划并不像我们想要的那么好和明显。您可以查看这两种情况下的执行计划。我建议在第一个查询中使用提示,例如:INNER MERGE JOIN。

以下是有关此内容的更多信息:

http://msdn.microsoft.com/en-us/library/ms181714.aspx

关于sql - 链接服务器表上的 INNER JOIN 比子查询慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9009676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com