SQLServer性能分析--执行计划、耗时SQL排查和死锁处理

目录

  • 1 常用系统存储过程
  • 2 查看执行计划
  • 3 查看磁盘使用率(STATISTICS IO)
  • 4 查询时间耗时较长的语句
  • 5 死锁处理
  • 参考资料

1 常用系统存储过程

1.1 查询表结构

EXEC sp_columns 'your_table', @column_name = 'table_column'

1.2 查询表索引

EXEC sp_helpindex 'your_table';

1.3 查询存储过程定义

EXEC sp_helptext 'sp_columns'

1.4 显示表的磁盘空间使用情况

EXEC sp_spaceused 'your_table';

2 查看执行计划

2.1 执行计划查询启用和关闭语法

SET SHOWPLAN_ALL ON
SET SHOWPLAN_ALL OFF

2.2 案例:在test_db数据库中的User表上查询“学号=123“的学生,并分析哪些索引被系统采用

USE test_dbGO
SET SHOWPLAN_ALL ON
GOSELECT * FROM User WHERE id = '123'GO
SET SHOWPLAN_ALL OFF
GO

3 查看磁盘使用率(STATISTICS IO)

3.1 执行计划查询启用和关闭语法

SET STATISTICS IO ON
SET STATISTICS IO OFF

3.2 案例

USE book_db
GO
SET STATISTICS IO ON
GOSELECT * FROM book WHERE id = 'YBZT246'GO
SET STATISTICS IO OFF
GO

4 查询时间耗时较长的语句

SELECT TOP 20total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],last_execution_time AS [最后一次执行时间],max_worker_time /1000 AS [最大执行时间(ms)],SUBSTRING(qt.text,qs.statement_start_offset/2+1, (CASE WHEN qs.statement_end_offset = -1 THEN DATALENGTH(qt.text) ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) AS [使用CPU的语法], qt.text [完整语法],dbname=db_name(qt.dbid),object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count>1
ORDER BY  total_worker_time DESC

5 死锁处理

select    request_session_id spid,   OBJECT_NAME(resource_associated_entity_id) tableName    
from    sys.dm_tran_locks   
where    resource_type='OBJECT' --杀死死锁进程
kill ${spid}--显示死锁相关信息
exec sp_who2 ${spid}

参考资料

  1. https://juejin.cn/post/7145871688217919524

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/585853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FairyGUI-Cocos Creator官方Demo源码解读

博主在学习Cocos Creator的时候,发现了一款免费的UI编辑器FairyGUI。这款编辑器的能力十分强大,但是网上的学习资源比较少,坑比较多,主要学习方式就是阅读官方文档和练习官方Demo。这里博主进行官方Demo的解读。 从gitee上克隆项目…

超实用!CSDN个人数据Chrome插件开发

插件简介 相信写过博客的都知道,每天会经常打开自己的主页无数次,尤其是写了一篇新文章,就为了看文章浏览量增长了多少,文章获得了多少个赞,有多少人评论(谁不想自己写的文章成为爆款呢~&#…

ubuntu装机记录

1.配网 文件地址: greeW19a406  ⚙ /etc/netplan  pwd  ✔  8  15:40:50 /etc/netplangreeW19a406  ⚙ /etc/netplan  #文件内容,注意缩进与网关可能报错需要添加初始化命令 # Let NetworkManager manage all…

PaddleOCR离线环境搭建

步骤: 1.安装python 2.在同配置下互联网环境的机器A上运行起来,参考如下 https://qushen.blog.csdn.net/article/details/135306757 3.机器A导出对应的依赖和模型 4.离线机器B导入对应的的依赖和模型 所以重点的第三步和第四步 导出依赖&#xff1…

基于Java学生成绩管理系统设计与实现(源码+部署文档+报告)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

【JavaEE进阶】 初识Spring Web MVC

文章目录 🌴什么是Spring Web MVC?🚩什么是Servlet呢? 🎋MVC 定义🚩再理解Spring MVC 🍀如何学习Spring MVC呢?⭕总结 🌴什么是Spring Web MVC? Spring Web MVC 是基于…

C编程指针篇----包括历年真题

一,(20年)用指针字符逆序 代码: int main() {char s[7] "monkey", * p1, * p2, c;p1 p2 s;while (*p2) p2;p2--;while (p2 > p1) {c *p1; *p1 *p2; *p2-- c; }printf("%s", s);return 0; } 运行结…

LCR 150. 彩灯装饰记录 II

解题思路&#xff1a; 与LCR. 彩灯装饰记录 I类似&#xff0c;增加了分层输出。 class Solution {public List<List<Integer>> decorateRecord(TreeNode root) {Queue<TreeNode> queue new LinkedList<>();List<List<Integer>> res ne…

【Linux操作系统】探秘Linux奥秘:操作系统的入门与实战

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《操作系统实验室》&#x1f516;诗赋清音&#xff1a;柳垂轻絮拂人衣&#xff0c;心随风舞梦飞。 山川湖海皆可涉&#xff0c;勇者征途逐星辉。 目录 &#x1fa90;1 初识Linux OS …

WebGL以及wasm的介绍以及简单应用

简介 下面主要介绍了WebGL和wasm,是除了html,css,js以外Web标准所支持的另外两个大件 前者实现复杂的图形处理,后者提供高效的代码迁移以及代码执行效率 WebGL 简介 首先,浏览器里的游戏是怎么做到这种交互又显示不同的画面的? 试想用我们的前端三件套实现一下.好像可以…

大创项目推荐 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

Unity坦克大战开发全流程——开始场景——设置界面

开始场景——设置界面 step1&#xff1a;设置面板的背景图 照着这个来设置就行了 step2&#xff1a;写代码 关联的按钮控件 监听事件函数 注意&#xff1a;要在start函数中再写一行HideMe函数&#xff0c;以便该面板能在一开始就能隐藏自己。 再在BeginPanel脚本中调用该函数即…

基于SSM的蛋糕甜品店管理系统的设计与开发论文

基于SSM的蛋糕甜品店管理系统的设计与开发 摘要 如今&#xff0c;科学技术的力量越来越强大&#xff0c;通过结合较为成熟的计算机技术&#xff0c;促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化&#xff0c;各行业结合互联网、人工智能等技术&#xff0c…

R语言【base】——cat() 输出对象,连接表示法,其运行的转换比 print 少得多

Package base version 4.3.2 Parameters cat(... , file "", sep " ", fill FALSE, labels NULL, append FALSE) 参数【...】&#xff1a;R 对象。 参数【file】&#xff1a;一个 connection&#xff0c;或一个命名要打印到的文件的字符串。如果是…

手写Spring与基本原理--简易版

文章目录 手写Spring与基本原理解析简介写一个简单的Bean加载容器定义一个抽象所有类的BeanDefinition定义一个工厂存储所有的类测试 实现Bean的注册定义和获取基于Cglib实现含构造函数的类实例化策略Bean对象注入属性和依赖Bean的功能Spring.xml解析和注册Bean对象实现应用上下…

API 开放平台项目(已整理,已废弃)

项目大纲 前端 React 18Ant Design Pro 5.x 脚手架Ant Design & Procomponents 组件库Umi 4 前端框架OpenAPI 前端代码生成 后端 Java Spring BootMySQL 数据库MyBatis-Plus 及 MyBatis X 自动生成API 签名认证&#xff08;Http 调用&#xff09;Spring Boot Starter&#…

探寻数据压缩——第一代小波构造的统一框架

小波分析作为一种多尺度分析方法&#xff0c;已经在信号处理、图像处理、数据压缩和模式识别等领域中展现出了巨大的应用潜力。在小波分析的发展历程中&#xff0c;第一代小波构造算法被广泛应用&#xff0c;为了更好地理解和应用第一代小波构造算法&#xff0c;构建一个统一的…

数据库——创建存储过程、函数和触发器安装phpmyadmin

1.实验内容及原理 1. 在 Windows 系统中安装 VMWare 虚拟机&#xff0c;在 VMWare 中安装 Ubuntu 系统,并在 Ubuntu 中搭建 LAMP 实验环境。 2. 使用 MySQL 进行一些基本操作&#xff1a; &#xff08;1&#xff09;登录 MySQL&#xff0c;在 MySQL 中创建用户&#xff0c;…

事实验证文章分类 Papers Category For Fact Checking

事实验证文章分类 Papers Category For Fact Checking By 2023.11 个人根据自己的观点&#xff0c;花了很多时间整理的一些关于事实验证领域证据召回&#xff0c;验证推理过程的文献综合整理分类&#xff08;不是很严谨&#xff09;。 引用请注明出处 欢迎从事事实验证Fact…

TypeScript源码中的一个很有意思的简写

在读TypeScript源码时&#xff0c;发现一个很有意思的简写 &#xff1a; return scriptInfo ? scriptInfo.getDefaultProject() : (this.logErrorForScriptInfoNotFound(isString(fileNameOrScriptInfo) ? fileNameOrScriptInfo : fileNameOrScript…