SQL SERVER (MSSQL) 学习笔记 性能
refer:
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) 学习笔记 性能的更多相关文章
- SQL Server 2012 学习笔记5
1. 索引(Index) 索引是快速的定位和查找数据.索引分为: 聚集索引:唯一,默认主键,一般选取比较连贯的字段,聚集索引是物理排序. 非聚集索引: 并没有把数据物理排序,只是多了一个索引页(包括索 ...
- sql server 2008 学习笔记
sql server 2008 删除已有的实例 想从setup.exe中区卸载,没找到. 原来还是要从控制面板中卸载,卸载Microsoft SQL Server 2008 卸载界面会提示让你选择要删 ...
- SQL Server 2012 学习笔记1
1. 新建的数据库会产生两个文件(数据文件.mdf 和日志文件.ldf) 2. 编辑表格和为表格录入数据 "Design"为设计表格,"Edit Top 200 Rows ...
- MS Sql server 2008 学习笔记
数据库中常用的概念 Sql本身是一个服务器,没有界面,Management Studio 只是一个SQL Server管理工具而已,不是服务器. Sql server 在管理工具下面的服务SQL S ...
- SQL Server 2012 学习笔记4
1. 约束 , 给某些字段添加约束条件, 比如年龄在1-100岁之间 添加约束,输入 Age>1 and Age < 100 2. 存储过程 存储过程也可以做增删改查 存储过程的 ...
- SQL Server数据库学习笔记-设计表时应该考虑的因素
设计数据库其实就是设计数据库中的表.到底要注意些什么才能够设计好一个数据库呢?一个宗旨,8个建议. 一个宗旨“尽量少的表,每个表中尽量少的列,合理的表结构”. 8个建议: 第一个,首先要考虑的是咱们这 ...
- SQL Server数据库学习笔记-概念数据模型
概念数据模型(Conceptual Data Model)也称为信息模型.它是对客观事物及其联系的抽象,用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具. ...
- SQL Server 2012学习笔记 1 命令行安装
setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=748RB-X4T6B-MRM7V-RTVFF-CHC8H /FEATU ...
- SQL Server 2012 学习笔记3 增查改删
现在举例几个"增查改删"的语句 select * from UserInfor --查找所有字段 select username,UserId from UserInfor -- ...
- SQL Server 2012 学习笔记2
1. 新建数据库 可以在对应目录下右键新建数据库,也可以用程序添加: 先打开程序编辑对话框"New Query" create database Library 2. 添加表格 可 ...
随机推荐
- web259(超详细)
SoapClient看完之后还不是很懂的话就可以去下面的两个网址去补充一下 SoapClient 是 PHP 中用于与 SOAP(Simple Object Access Protocol)服务进行通 ...
- oeasy教您玩转linux 010216 随机诗词 fortunezh
我们来回顾一下 上一部分我们都讲了什么? 下载fortune 输出重定向到cowsay 多重输出重定向 fortune的细节 有没有中️文的fortune呢 # 搜索一下fortune apt sea ...
- VUE小知识~作用域插槽
作用域插槽可以为我们向组件内插入特定的标签,方便修改维护. 组件内需要使用 <slot></slot>进行插槽站位. 组件标签内需要使用<template > &l ...
- 写写Redis十大类型zset的常用命令
其实这些命令官方上都有,而且可读性很强,还有汉化组翻译的http://redis.cn/commands.html,不过光是练习还是容易忘,写一写博客记录一下 从zset类型开始写||zset类型适合 ...
- uniapp打包所需的ios证书和证书profile文件获取的图文教程
使用uniapp进行云打包,可以打包android和ios两种app,但是uniapp官方并不能凭空产生这两种平台所需的打包证书. 那么这两种打包证书又是如何获取呢? android相对简单,使用jd ...
- docker redis集群实验
集群redis 分片+高可用+负载均衡 master + slave{1..5} 一个挂了另一个顶上 通过脚本创建6个redis配置文件 [root@docker ~]# for port in $( ...
- 中国特供阉割版4090D建议安装最新驱动,据说不然的话会报error:4090和4090D对比
资料来源: https://www.bilibili.com/video/BV1oa4y127fG/?spm_id_from=333.999.0.0&vd_source=f1d0f27367a ...
- xshell终端——多个窗格同步输入——xshell同时控制多个窗口的快捷方式
参考: https://blog.csdn.net/m0_58347801/article/details/129551382 ======================== 突发发现了终端的另类用 ...
- 【转载】 xavier,kaiming初始化中的fan_in,fan_out在卷积神经网络是什么意思
原文地址: https://www.cnblogs.com/liuzhan709/p/10092679.html =========================================== ...
- C# Cefsharp 设置代理方法
前提条件 为了实现在cefsharp里面设置代理,首先在创建一个ChromiumWebBrowser的时候,检查是否使用了以下代码 settings.CefCommandLineArgs.Add(&q ...