哪个Join有更多的I / O和CPU周期?

时间:2009-08-27 16:58:41

标签: sql sql-server sql-server-2005 tsql

哪个Join有更多的I / O和CPU周期? 散列连接或合并连接或循环连接?

3 个答案:

答案 0 :(得分:4)

简答:循环加入

为了效率最低而效率最高

  1. 效率最低的循环连接会根据“右”表的每个值检查“左”表的每个值。 (就像编程中的嵌套for循环一样)
  2. 最常出现的连接是散列连接,其中最小的表具有为要测试的密钥预先计算的散列值。然后针对另一个表测试哈希。通常,当每个表在进程生成之前的排序顺序不同时使用。
  3. 效率最高的是合并加入。当两个表最初以相同的顺序存储在磁盘上时(即具有聚簇索引且两者的顺序相同),可以使用此方法。在这里,算法同时逐步遍历两个表,并跳过它们不重叠的部分。

答案 1 :(得分:1)

查看查询的执行计划以找出

答案 2 :(得分:0)

如果我没记错的话,那就是(最便宜):

循环加入
合并加入
哈希加入