sql?server卡慢问题定位与排查过程(sql很慢 io不高)速看

随心笔谈9个月前发布 admin
204 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了如何通过SQL Server的资源排查和性能优化来解决服务器运行缓慢的问题。主要内容包括: 1. **资源排查**: - 使用`sysproceses`表(`select * from sys.sysprocesses where status='suspended'`)和`sp_who2`命令,查看阻塞的进程。 - 通过`dbcc inputbuffer(spid)`和`dbcc opentran(tempdb)`清理输入缓冲区和临时数据库,释放资源。 - 使用`set statistics`命令(如`PROFILE`、`IO`、`TIME`)监控SQL语句执行过程,分析系统资源利用情况。 2. **性能排查**: - 通过`dbcc`命令清理输入缓冲区和开放临时数据库,释放资源。 - 使用`set statistics`命令设置`OFFSET`(`STATISTICS IO OFFSET STATISTICS TIME`)来观察SQL执行过程中的资源使用情况。 3. **总结**: - 使用`set statistics`命令(`PROFILE`、`IO`、`TIME`)分析SQL执行时间,优化查询性能。 - 通过`sysproceses`表和`sp_who2`命令快速定位阻塞进程,释放资源。 文章提供了一套系统的排查方法,帮助用户快速诊断并优化SQL性能问题。



目录一、数据库服务器资源排查二、数据库sql性能排查2.1、查询哪些资源被阻塞了 和 堵进程2.2、查询spid/BlkBy 阻塞进程语句2.3、查看指定数据库的锁id进行2.4、杀进程三、查询sql语句执行时间和sql语句性能总结

1)、查询哪些资源被阻塞了(spid为阻塞进程id)

select * from sys.sysprocesses where status=’suspended’

2)、查询堵进程(BlkBy阻塞进程id)

sp_who2 active查看堵的进程

dbcc inputbuffer(spid)
dbcc opentran(tempdb)
kill spid with statusonly

通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:

SET STATISTICS PROFILE ON        –显示分析、编译和执行查询所需的时间(以毫秒为单位)。SET STATISTICS IO ON        –报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。SET STATISTICS TIME ON        –显示每个查询执行后的结果集,代表查询执行的配置文件。SELECT [字段] FROM [表名] –SQL语句SET STATISTICS PROFILE OFFSET STATISTICS IO OFFSET STATISTICS TIME OFF

到此这篇关于sql server卡慢问题定位与排查过程的文章就介绍到这了,更多相关sql server卡慢问题定位内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:MySQL安装时一直卡在starting?server的问题及解决方法

© 版权声明

相关文章