zoukankan      html  css  js  c++  java
  • 嵌套循环连接(Nested Loops), 合并联接(Merge), 哈希联接(Hash)的适用情况

    1.嵌套循环连接(Nested Loops)适用范围
    两个表, 一个叫外部表, 一个叫内部表.

    如果外部输入非常小,而内部输入非常大并且已预先建立索引,那么嵌套循环联接将特别有效率。

    关于连接时哪个表为outer表,哪个为inner表,我发现sql server会自动给你安排,和你写的位置无关,它自动选择数据量小的表为outer表, 数据量大的表为inner表。

    2.合并联接(Merge)
    指两个表在on的过滤条件上都有索引, 都是有序的, 这样, join时, sql server就会使用Merge join, 这样性能更好.

    如果一个有索引,一个没索引,则会选择Nested Loops join.
     

    3.哈希联接(Hash)
    如果两个表在on的过滤条件上都没有索引, 则就会使用Hash join.

    也就是说, 使用Hash join算法是由于缺少现成的索引.

    参考资料:

    Inside SQL server 2008 T-SQL.

    高级查询优化概念
    http://msdn.microsoft.com/zh-cn/library/ms191426(v=SQL.100).aspx

  • 相关阅读:
    redis
    装饰器之functools与before_request
    版本
    git常用命令
    支付宝支付示例
    ContentType
    vue的基础使用
    es6简单介绍
    解析器、路由控制、分页与响应器
    元素水平居中的方法
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/2257350.html
Copyright © 2011-2022 走看看