refer:

看懂SqlServer查询计划

How do I identify slow queries in sql server?

join operator, hash, merge, nested

https://cloud.tencent.com/developer/article/1039327

https://www.youtube.com/watch?v=jiWCPJtDE2c (讲 merge join 过程)

https://www.youtube.com/results?search_query=hash+join+in+sql+server (讲 hash join 过程)

https://www.youtube.com/watch?v=pJWCwfv983Q (讲全部最好的了)

各有千秋

nested join 就是 loop outer 表然后找 inner 表

找 inner 表要用索引, 不然慢死, outer 表不可以太大,loop 太多也不太好

merge join 通过先 sort 然后一条一条 row compare 因为先 sort 好了所以对比的时候就是一个 z 字形往下走

如果表本身就有 sort 好了, 那么这个肯定会快过 nested, 如果没有特地去 sort 的话, 未必就一定好.

hash join 是通过算法把 compare 的 key 归类, 和 merge 一样也是通过一种 pre 处理的方式去调整结构然后提升 compare 的速度

话说如果表达的话, hash table 会开临时表, 那也是不太好的

总结就是很多原因可以导致不同的 loop 方式会比较快,所以还是得依据情况看,然后针对性看怎么优化.

检查运行时间

DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;

SET @t1 = GETDATE();

--query

SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms

或者是

set statistics time on

set statistics time off

或者是

看执行计划 :

set statistics profile on;

set statistics profile off;

ctrl + L

clear buffer

DBCC DROPCLEANBUFFERS

SQL SERVER (MSSQL) 学习笔记 性能的更多相关文章

  1. SQL Server 2012 学习笔记5

    1. 索引(Index) 索引是快速的定位和查找数据.索引分为: 聚集索引:唯一,默认主键,一般选取比较连贯的字段,聚集索引是物理排序. 非聚集索引: 并没有把数据物理排序,只是多了一个索引页(包括索 ...

  2. sql server 2008 学习笔记

    sql server 2008 删除已有的实例 想从setup.exe中区卸载,没找到. 原来还是要从控制面板中卸载,卸载Microsoft SQL Server 2008 卸载界面会提示让你选择要删 ...

  3. SQL Server 2012 学习笔记1

    1. 新建的数据库会产生两个文件(数据文件.mdf 和日志文件.ldf) 2. 编辑表格和为表格录入数据 "Design"为设计表格,"Edit Top 200 Rows ...

  4. MS Sql server 2008 学习笔记

    数据库中常用的概念 Sql本身是一个服务器,没有界面,Management Studio  只是一个SQL Server管理工具而已,不是服务器. Sql server 在管理工具下面的服务SQL S ...

  5. SQL Server 2012 学习笔记4

    1.  约束 , 给某些字段添加约束条件, 比如年龄在1-100岁之间 添加约束,输入 Age>1 and Age < 100 2.  存储过程 存储过程也可以做增删改查    存储过程的 ...

  6. SQL Server数据库学习笔记-设计表时应该考虑的因素

    设计数据库其实就是设计数据库中的表.到底要注意些什么才能够设计好一个数据库呢?一个宗旨,8个建议. 一个宗旨“尽量少的表,每个表中尽量少的列,合理的表结构”. 8个建议: 第一个,首先要考虑的是咱们这 ...

  7. SQL Server数据库学习笔记-概念数据模型

    概念数据模型(Conceptual Data Model)也称为信息模型.它是对客观事物及其联系的抽象,用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具. ...

  8. SQL Server 2012学习笔记 1 命令行安装

    setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=748RB-X4T6B-MRM7V-RTVFF-CHC8H /FEATU ...

  9. SQL Server 2012 学习笔记3 增查改删

    现在举例几个"增查改删"的语句 select * from UserInfor --查找所有字段 select username,UserId from UserInfor -- ...

  10. SQL Server 2012 学习笔记2

    1. 新建数据库 可以在对应目录下右键新建数据库,也可以用程序添加: 先打开程序编辑对话框"New Query" create database Library 2. 添加表格 可 ...

随机推荐

  1. C# 语言笔记

    1. C# 初识 因为先前已经学过 C++ 了,所以在C# 的学习中,大多只记录和 C++ 不同的点,在学习的过程中,感谢刘铁猛老师的教程,您是我C# 入门的领路人. 1.1 使用 .net cli ...

  2. supervisor.conf部署及维护

    启动服务 supervisord -c /etc/supervisord.conf 启动服务 supervisorctl start 关闭服务 supervisorctl stop

  3. oeasy 教您玩转linux 之010208 满屏乱码 bb

    我们来回顾一下 上一部分我们都讲了什么? 黑客帝国 各种速度颜色参数 最后我们想找一个让人完全崩溃的软件包,这不就来了,话不多说,先试试. apt show bbapt search bbsudo a ...

  4. 用ssh同时push 项目到github和gitee的方法

    ​ 分别为两个网站声称pubkey cd ./ssh ssh-keygen -t rsa -C "oeasy@oeasy.org" -f "github_id_rsa&q ...

  5. 改善中国打开GitHub网站的速度

    您可以采取以下措施来改善您在中国打开GitHub网站的速度:1. 使用VPN:通过连接到VPN服务器,您可以避免中国政府对GitHub网站进行的封锁,从而获得更快的访问速度.2. 使用加速器:国内有很 ...

  6. Python | 解决方案 | 多个文件共用logger,重复打印问题

    项目中封装了logging库为log.py,实现既把日志输出到控制台, 又写入日志文件文件. 环境:python3.7.3 项目中,多个文件共用logger,出现重复打印问题,解决流程记录如下: 文件 ...

  7. Python和RPA网页自动化-处理iframe嵌入式框架

    以网易云为例,歌曲列表都在<iframe>框架下,使用Python和RPA网页自动化依次点击10首歌的播放键 1.python代码 从网页源代码可见,整个歌曲列表都在<iframe& ...

  8. 8、IDEA集成Git

    8.1.配置Git忽略文件 8.1.1.忽略文件的原因 在使用 IDE 工具时,会自动生成一些和项目源码无关的文件,所以可以让 Git 忽略这些文件. 此外,把这些无关文件忽略掉,还能够屏蔽不同 ID ...

  9. 【PHP】5版本 过程式操作MySQL

    建立连接和释放连接: # 连接参数 $sever = 'localhost:3309'; $username = 'root'; $password = 'root'; # 调用连接方法,如果失败结束 ...

  10. 【爬虫】Python获取星巴克所有产品

    视频只介绍了BS4的简单使用,但我想全部获取出来 其实翻看接口,直接有一个json资源提供了这些数据,但是没有分类 import re import urllib.request from bs4 i ...