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 | 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 | OFF

3.2 案例

USE book_dbGO
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 死锁处理

5.1 查询死锁进程ID

SELECTrequest_session_id spid,   OBJECT_NAME(resource_associated_entity_id) tableName    
FROM sys.dm_tran_locks   
WHERE resource_type='OBJECT' 

5.2 查询死锁进程信息

EXEC sp_who2 ${spid}

5.3 杀死进程

KILL ${spid}

参考资料

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

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

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

相关文章

linux usb 驱动之创urb的创建和销毁

struct urb 结构在驱动中必须不被静态创建, 或者在另一个结构中, 因为这可能破坏 USB 核心给 urb 使用的引用计数方法. 它必须使用对 usb_alloc_urb 函数的调用而被创 建. 这个函数有这个原型: struct urb *usb_alloc_urb(int iso_packets, int mem_flags); 第一个参数, iso_pa…

js逆向第9例:猿人学第2题-js混淆-动态cookie1

题目2:提取全部5页发布日热度的值,计算所有值的加和,并提交答案 (感谢蔡老板为本题提供混淆方案) 既然题目已经给出了cookie问题,那就从cookie入手,控制台找到数据请求地址 可以看到如下加密字符串m类似md5,后面跟着时间戳 m=45cc41dcdb15159ebb50564635f8e362|1704301…

偌依 项目部署及上线步骤

准备实验环境,准备3台机器 1.作为前端服务器,mysql,redis服务器--同时临时作为代码打包服务器 192.168.2.65 nginx-server 2.作为后端服务器 192.168.2.66 java-server-1 192.168.2.67 java-server-2 安装nginx/mysql #安装nginx [rootweb-nginx ~]…

智能视频监控技术在旅游业中如何发挥最大作用,助力旅游业发展

随着“南方小土豆勇闯哈尔滨”的词条霸榜热搜,大众旅游热情再次点燃。最近哈尔滨游客爆满的情况,极易发生游客迷路、景区瘫痪、交通堵塞等情况,当地有关部门的压力不言而喻。对于节假日或者“破天富贵”、“报复性旅游”的情况,景…

webrtc报文记录

tcp.port 10443 || tcp.port 6080 || udp.port 8000 https://download.csdn.net/download/dualvencsdn/88706745

如何使用ArcGIS Pro转换单个点坐标

坐标转换作为基础的功能,一般的GIS软件都支持,大多数情况下,我们是转换整个图层,如果想要转换单个坐标点,在ArcGIS Pro内也是支持的,这里为大家介绍一下转换方法,希望能对你有所帮助。 拾取坐标…

trino 433 开启密码验证

什么要开启密码验证 因为不加密的话,所有人都可以查询所配置的数据库 摘要 采用最简单的账号密码认证。 准备 trino 已经开启了https。trino 开启httpspassword.db。用户密码文件,一行就是一个用户名密码,用户密码用:隔开,比…

AUTOSAR系统服务篇-WdgM

文章目录 简介受监督的实体和校验点监督机制的交互监督函数存活监督(Alive Supervision)死线监督逻辑监督看门狗处理错误处理受监督实体中的错误处理硬件狗复位立即MCU复位术语功能详述监督功能的交互综述本地监督状态

【代码解析】代码解析之登录(2)

PostMapping("/login")public R<Employee> login(HttpServletRequest request, RequestBody Employee employee){//将页面提交的密码password&#xff0c;进行md5加密处理String password employee.getPassword();password DigestUtils.md5DigestAsHex(passw…

IPv6路由协议---IPv6静态路由

IPv6路由协议 路由是数据通信网络中最基本的要素。路由信息就是知道报文发送的路径信息,路由的过程就是报文转发的过程。 根据路由目的地的不同,路由可划分: 1.网段路由:目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。 2.主机路由:目的地为主…

Python爬虫实战技巧:如何在爬取过程中动态切换代理IP

目录 前言 第一步&#xff1a;获取代理IP列表 第二步&#xff1a;测试代理IP的可用性 第三步&#xff1a;动态切换代理IP 总结 前言 在进行爬虫开发的过程中&#xff0c;有时候需要使用代理IP来访问目标网站&#xff0c;以避免被封IP或者降低访问频率的限制。本文将介绍如…

Zabbix自定义监控内容实验(带自动报警)

实验前准备 zabbix服务端&#xff1a;192.168.188.17 zabbix客户端&#xff1a;192.168.188.11 部署zabbix服务端&#xff08;192.168.188.17&#xff09; zabbix-server 内存至少2G&#xff0c;推荐4G (1) 关闭防火墙 systemctl stop firewalld setenforce 0 (2)获取zabbix下…

第五周:深度学习知识点回顾

前言&#xff1a; 讲真&#xff0c;复习这块我是比较头大的&#xff0c;之前的线代、高数、概率论、西瓜书、樱花书、NG的系列课程、李宏毅李沐等等等等…那可是花了三年学习佳实践下来的&#xff0c;现在一想脑子里就剩下几个名词就觉得废柴一个了&#xff0c;朋友们有没有同感…

web学习笔记(九)

目录 1.初识JS(JavaScript) 1.1什么是JavaScript&#xff1f; 1.2HTML5 CSS3 javaScript三者的关系 1.3 JAVAScript的作用 1.4JAVAScript的组成部分 1.5JS注释 1.6补充知识 2.JS的引入方法 2.1行内式 2.2嵌入式&#xff08;内嵌式&#xff09; 2.3外链式 3.输入和…

Linux--系统安全及应用

1.1账号安全控制 用户账号是计算机使用者的身份凭证或标识&#xff0c;每个要访问系统资源的人&#xff0c;必须凭借其用户账号才能进入计算机。在Linux系统中&#xff0c;提供了多种机制来确保用户账号的正当、安全使用。 1.系统账号清理 在Linux系统中&#xff0c;除了用户手…

ChatGPT绘制全球植被类型分布图、生物量图、土壤概念图、处理遥感数据并绘图、病毒、植物、动物细胞结构图

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

2024年华为hcie方向有哪些?hcie 考点在哪里?

华为作为全球领先的ICT解决方案供应商&#xff0c;其认证体系在业内具有极高的权威性和认可度。其中&#xff0c;华为认证体系中的最高级别认证——HCIE&#xff0c;已经成为无数技术爱好者追求的目标。下面将探讨华为HCIE的方向及其考点&#xff0c;希望能对那些有志于获取HCI…

8. PageHelper分页插件

官方文档&#xff1a;https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md 1. 引入分页插件 在 pom.xml 中添加下面的依赖&#xff1a; <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</…

redis安装与配置

目录 1. 切换到 root 用户 2. 搜索安装包 3. 安装 redis 4. 查看 redis 是否正常存在 5. 修改ip 6. 重新启动服务器 7. 连接服务器 1. 切换到 root 用户 通过 su 命令切换到 root 用户。 2. 搜索安装包 apt search redis 这里安装的是下面的版本&#xff1a; 3. 安装 …

【MIT 6.S081】2020, 实验记录(1),Lab: Xv6 and Unix utilities

目录 实验准备TasksTask 1: Boot xv6Task 2: sleepTask 3: pingpongTask 4: primesTask 5: find 实验准备 这个 lab 用来学习尝试如何通过 system call 来实现常见的 shell 命令行程序&#xff0c;比如 ls、sleep、xargs 等。 实验官网 可以使用 docker 搭建实验环境&#x…