当前位置: 首页 > news >正文

[mssql] 分析SQL Server中执行效率较低的SQL语句

查询性能分析较低的SQL语句

-- 查询性能分析
SELECT TOP 50qs.creation_time AS [编译时间],qs.last_execution_time AS [最后执行时间],qs.execution_count AS [执行次数],qs.total_worker_time/1000 AS [CPU总时间(ms)],qs.total_elapsed_time/1000 AS [总耗时(ms)],(qs.total_elapsed_time/qs.execution_count)/1000 AS [平均耗时(ms)],qs.total_logical_reads/qs.execution_count AS [平均逻辑读],qs.total_physical_reads/qs.execution_count AS [平均物理读],qp.query_plan AS [执行计划],CASE WHEN qs.total_elapsed_time/qs.execution_count > 1000 THEN '严重'WHEN qs.total_elapsed_time/qs.execution_count > 500 THEN '警告'ELSE '正常'END AS [性能评级],SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) AS [执行语句]
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp
WHERE qs.last_execution_time > DATEADD(HOUR, -24, GETDATE())AND st.text NOT LIKE '%sp_%'AND st.text NOT LIKE '%FETCH%'
ORDER BY [平均耗时(ms)] DESC,[执行次数] DESC;

查看 SQL 执行计划

SET SHOWPLAN_XML ON;
GO
-- SQL语句
GO
SET SHOWPLAN_XML OFF;
GO

执行计划关键解读点:

‌索引使用‌

  • ✅ Index Seek:高效索引查找
  • ⚠️ Index Scan:可能需优化索引
  • ❌ Table Scan:全表扫描警告

‌连接类型‌

  • Nested Loops:小数据集适用
  • Hash Match:大数据连接内存消耗高
  • Merge Join:需排序预处理

‌警告标识‌

  • 红色惊叹号:缺失索引/统计信息过期
  • 高成本百分比:性能瓶颈节点

💡 优化建议:对出现 Key Lookup 的操作创建覆盖索引(INCLUDE 列)

http://www.xdnf.cn/news/1232155.html

相关文章:

  • 关于echarts的性能优化考虑
  • 蓝桥杯----串口
  • 我的世界进阶模组教程——物品(2)
  • 【redis】基于工业界技术分享的内容总结
  • 力扣 hot100 Day63
  • OLTP,OLAP,HTAP是什么,数据库该怎么选
  • ADB 查看 CPU 信息、查看内存信息、查看硬盘信息
  • [ LeetCode-----盛最多的水]
  • 【vue】computed计算属性
  • pytorch的 Size[3] 和 Size[3,1] 区别
  • 自动驾驶中的传感器技术15——Camera(6)
  • Unity_数据持久化_XML存储相关
  • web:js的模块导出/导入
  • 从零打造大语言模型--处理文本数据
  • OAuth 2.0 的安全升级版授权协议 OAuth 2.1 详解
  • 基于深度学习的医学图像分析:使用MobileNet实现医学图像分类
  • FFmpeg+javacpp中纯音频播放
  • ffmpeg命令和ffplay命令详解
  • 高效轻量的C++ HTTP服务:cpp-httplib使用指南
  • Linux进程间通信——system V信号量
  • Agents-SDK智能体开发[4]之集成MCP入门
  • 【整数转罗马数字】
  • 探索延迟生效变量类:一种灵活的状态管理机制
  • linux进度条程序
  • WD5208S,12V500MA,应用于小家电电源工业控制领域
  • Z20K118库中寄存器及其库函数封装-WDOG库
  • 深入 Go 底层原理(十):defer 的实现与性能开销
  • hcip---ospf知识点总结及实验配置
  • 淘宝获取商品SKU详情API接口操作指南
  • Python爬虫实战:研究SimpleCV技术,构建图像获取及处理系统