-
sql语句大全之SQLServer 定位CPU使用较高的用户和
CPU 高的时候有很多方法定位,以下是一种比较慢的定位方法,不过本人也不会这样跟踪。实例如下:
首先确认高CPU是数据库内部消耗还是Windows其他应用程序消耗较高CPU。打开Windows 任务管理器可以确定哪个进程消耗高CPU。
确定是 sqlserver 实例内部消耗的CPU,打开性能计数器跟踪。
cmd——》perfmon——》选择计数器对象 thread ——》选择 % Processor Time、ID Process 、ID Thread——》对象实例选择所有的sqlserver/XX——》确定!
选择高亮,点击最高的线条,或者逐行查看sqlserver 线程的% Processor Time,确定为 51
找到 ID Thread 为 51的,查看其值为2252,即为线程ID。
到数据库中查看系统表 sys.sysprocesses ,kpid为2252的连接,可以看多执行的状态和对象信息。
SELECT spid, kpid, dbid, cpu, lastwaittype,status,loginame
FROM sys.sysprocesses WHERE spid=55
查看执行语句:
DBCC INPUTBUFFER(55)
可以确定执行了什么语句,即可进行相关优化。或者对该登录连接进行相关操作。
本人一般直接查看当前请求的连接:
SELECT
sp.[kpid],
der.[session_id],
der.[request_id],
der.[start_time],
der.[status],
der.[command],
dest.[text],
DB_NAME(der.[database_id]) [database],
der.[blocking_session_id],
der.[wait_type] ,
der.[wait_time],
der.[wait_resource],
der.[reads],
der.[writes] ,
der.[logical_reads],
der.[row_count],
sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame,sp.cmd
FROM sys.[dm_exec_requests] AS der
INNER JOIN master.dbo.sysprocesses AS sp on der.session_id=sp.spid
CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50 AND session_id<>@@SPID AND der.[database_id]=DB_ID()
ORDER BY [cpu_time] DESC
---------------------
作者:薛定谔的DBA
来源:CSDN
原文:https://blog.csdn.net/kk185800961/article/details/50158913
版权声明:本文为博主原创文章,转载请附上博文链接!
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式