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-聚焦sp_executesql执行动态SQL查询性能真的比exec好?
- SQL Server-聚焦存储过程性能优化、数据压缩和页压缩提高IO性能(一)
- SQL Server-聚焦计算列或计算列持久化查询性能(二十二)
- SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
- SQL Server-聚焦NOT EXISTS AND NOT IN性能分析(十五)
- LEFT JOIN vs. LEFT OUTER JOIN in SQL Server
- SQL SERVER常用函数
- SQL Server-删除表中重复的记录!
- 《T-SQL性能调优秘笈——基于SQL Server 2012 窗口函数》导读
- SQL Server重置INDETITY的开始值
- SQL SERVER数据库状态
- SQL Server中多表连接时驱动顺序对性能的影响
- SQL Server创建复合索引时,复合索引列顺序对查询的性能影响
- SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)
- SQL Server-数据库架构和对象、定义数据完整性
- 坑人的SQL Server检测数字类型的函数ISNUMERIC
- Sql Server 性能优化之包含列
- SQL Server索引进阶第五篇:索引包含列 .
- ArcGIS Server 地图发布请求分析
- MS SQL Server分析数据库的I/O性能
- SQL Server查询性能优化之创建合理的索引(上)
- SQL server 错误代码对比表
- 【sql server安全】sql server列加密查询性能问题及解决方案
- sql server下载测试数据库AdventureWorks
- sql server中的工作线程
- (4.20)sql server性能指标、性能计数器
- sql server性能调优
- sql server 2008 评估期已过期解决办法
- (4.5)sql server授权/权限操作/查看权限,权限控制
- How to Kill All Processes That Have Open Connection in a SQL Server Database[关闭数据库链接 最佳方法] -摘自网络
- SQL Server性能常用语句
- SQL Server 中master..spt_values的应用
- SQL Server Insert操作中的锁