当前位置: 首页 > 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.dtcms.com/a/311126.html

相关文章:

  • Git、Gitee、GitHub、GitLab完整讲解:从基础到进阶
  • GaussDB 约束的使用举例
  • Leetcode-141.环形链表
  • Rust: 工具链版本更新
  • Linux网络-------4.传输层协议UDP/TCP-----原理
  • Ajax——异步前后端交互提升OA系统性能体验
  • python chardet文本编码识别代码
  • Java单元测试和设计模式
  • uniapp 富文本rich-text 文本首行缩进和图片居中
  • Day 29: 复习
  • 音视频学习(四十五):声音的产生
  • 数据集-目标检测系列- 地球仪 数据集 globe>> DataBall
  • 前端应用权限设计面面观
  • 网络基础实操篇-05-路由基础-最佳实践
  • 【机器学习】非线性分类算法(上):KNN(基于距离相似度)与朴素(特征独立)贝叶斯(基于概率统计)
  • MybatisPlus-逻辑删除
  • 【ElementPlus】深入探索ElementPlus:前端界面的全能组件库
  • 【Conda】配置Conda镜像源
  • 【Linux】vim—基操
  • 网易云音乐硬刚腾讯系!起诉SM娱乐滥用市场支配地位
  • 【深度学习②】| DNN篇
  • SmartCLIP:具有识别保证的模块化视觉-语言对齐
  • 基于OAuth2与JWT的微服务API安全实战经验分享
  • Java 垃圾回收机制:自动化内存管理的艺术与科学
  • Python 程序设计讲义(54):Python 的函数——函数概述
  • Linux iptables防火墙操作
  • 一种基于入侵杂草优化算法(IWO)的聚类算法,并与K-Means、高斯混合模型(GMM)进行对比,Matlab
  • 网安-中间件(updating..)
  • HarmonyOS NEXT系列之定制化构建制品
  • HarmonyOS 开发:基于 ArkUI 实现复杂表单验证的最佳实践