sql – 使用联盟或加入 – 什么是更快

前端之家收集整理的这篇文章主要介绍了sql – 使用联盟或加入 – 什么是更快前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是想知道如果你有一张桌子,你们联合起来,那么使用加入会更有效吗?

我知道连接创建更多的列,但这更有理论意义 – 联盟需要对连接进行嵌套循环扫描,就像连接一样吗?

解决方法

Union会更快,因为它只是传递第一个SELECT语句,然后解析第二个SELECT语句,并将结果添加输出表的末尾.

Join将通过两个表的每一行,在另一个表中查找匹配,因此需要更多的处理,因为每行搜索匹配的行.

编辑

联盟我的意思是联盟All,因为它似乎足够你想要实现的.虽然一般的联盟一般比加盟更快.

编辑2(回复@seebiscuit的评论)

我不同意他的意见.从技术上来说,无论你的加入有多好,“加入”还是比纯粹的连接更昂贵.我做了一个博文,以证明它在我的博客codePERF[dot]net.实际上,他们的服务器2完全不同的目的,更重要的是确保你的索引是正确的,并使用正确的工具的工作.

从技术上来说,我认为可以使用我的博客文章中的以下2个执行计划来总结:

UNION全部执行计划

加盟执行计划

实际成果

实际上,集群索引查找的差异可以忽略不计:

原文链接:https://www.f2er.com/mssql/81848.html

猜你在找的MsSQL相关文章