嵌套循环连接(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
嵌套循环连接(Nested Loops), 合并联接(Merge), 哈希联接(Hash)的适用情况相关推荐
- 数据库:笛卡儿积、连接、等值连接、自然连接、外连接、嵌套循环连接、排序合并连接、索引连接和哈希连接
写在前面 连接是数据库算法的一个重要内容,但数据库的知识有些忘了,最近刚好需要,就又看着笔记重新整理了一遍. 一.笛卡儿积 先来从笛卡儿积开始说起.笛卡儿积是集合的一种基本运算.假设有两个表 R R ...
- 表连接三剑客(嵌套循环连接,哈希连接,排序合并连接)
表连接三剑客(嵌套循环连接,哈希连接,排序合并连接) 1.表连接的定义: 例子1:有一个特别的舞会,男孩子集中在一个房间,女孩子集中在另外一个房间,舞池设置在两个房间中间. 开始跳舞时,从男孩子中选出 ...
- SqlServer 算法 :Nested Loops Join(嵌套连接)
自测试示例, 两表 都没有 建立索引 情况: start 1. sql 语句通过 nested loop 连接, 2. 默认 hash join //end-------------------- ...
- oracle 非等值关联 优化,Oracle优化器、优化模式、表的连接方式(Hash Join、Nested Loop、Sort Merge Join)...
查询优化器 Oracle的查询优化器(QO)分为两种: 1. RBO:Ruled-Based Optimization, 基于规则的优化器: 2. CBO :Cost-Based Optimizati ...
- Python编程基础:第十二节 嵌套循环Nested Loops
第十二节 嵌套循环Nested Loops 前言 实践 前言 嵌套循环通常包括内循环与外循环,外循环执行一次,内循环执行一轮.通常情况下,我们将嵌套循环用于多维数组的遍历等场景. 实践 我们以打印一个 ...
- 嵌套循环连接,哈希连接,排序合并连接(2015-2-4学习日记)
==>>嵌套循环连接,哈希连接,排序合并连接 -->>嵌套循环连接 select * from /*+leading(t1) use_nl(t2)*/ from t1,t2 w ...
- 并行循环和嵌套循环_并行嵌套循环连接–嵌套循环连接和残留谓词的内侧
并行循环和嵌套循环 This article is the second part of the Nested Loop Join Series. In the first part, Introdu ...
- SQL连接操作符介绍(循环嵌套, 哈希匹配和合并连接)
今天我将介绍在SQLServer 中的三种连接操作符类型,分别是:循环嵌套.哈希匹配和合并连接.主要对这三种连接的不同.复杂度用范例的形式一一介绍. 本文中使用了示例数据库AdventureWorks ...
- Pandas知识点-合并操作merge
Pandas知识点-合并操作merge merge()方法是Pandas中的合并操作,在数据处理过程中很常用,本文介绍merge()方法的具体用法. 一.基础合并操作 merge(left, righ ...
最新文章
- 可构造样式表 - 通过javascript来生成css的新方式
- 比特币的价格今年会达到10万美元吗?有人用蒙特卡罗方法预测了一下
- 管理员信息管理之更新管理员数据
- mysql查询字符串出现次数
- C++实现拓扑排序(邻接表存储,栈实现)
- php字符串中删除字符串函数,PHP 实现删除任意区间内字符串函数方法
- windows下安装HTK3.4
- 《Java性能优化权威指南》读书笔记
- 微软的teredo服务器,深度完美W10系统通过teredo连接IPv6的方法
- 大学兼职一般做什么?有哪些职业?
- 腾讯地图、高德地图去除logo方法
- NLP_task4文本表示_CBOW和Skip-gram模型
- 终于有人把业务中台、数据中台、技术中台都讲明白了
- SQLT(SQLTXPLAIN)
- 网易云音乐插件现已登陆 Visual Studio Code
- 【NLP】中文停用词表(附哈工大停用词表代码)
- 单片机如何优雅的读取0-10V传感器信号(一)
- 超详细树莓派4B安装Ubuntu Server无屏幕
- 1. 经验累积分布函数
- 债券和股票有什么区别?债券和股票的区别在哪里?