SQL Server中查询CPU占用高的SQL语句
类别:数据库 浏览量:9253
时间:2014-8-20 SQL Server中查询CPU占用高的SQL语句
SQL Server中查询CPU占用高的SQL语句SQL Server中查询CPU占用高的情况,会用到sys.sysprocesses ,dm_exec_sessions ,dm_exec_requests
一、查看当前的数据库用户连接有多少
USE master
GO
SELECT * FROM sys.[sysprocesses] WHERE [spid]>50 --AND DB_NAME([dbid])='gposdb'
SELECT COUNT(*) FROM [sys].[dm_exec_sessions] WHERE [session_id]>50
二、选取前10个最耗CPU时间的会话
SELECT TOP 10
[session_id],
[request_id],
[start_time] AS '开始时间',
[status] AS '状态',
[command] AS '命令',
dest.[text] AS 'sql语句',
DB_NAME([database_id]) AS '数据库名',
[blocking_session_id] AS '正在阻塞其他会话的会话ID',
[wait_type] AS '等待资源类型',
[wait_time] AS '等待时间',
[wait_resource] AS '等待的资源',
[reads] AS '物理读次数',
[writes] AS '写次数',
[logical_reads] AS '逻辑读次数',
[row_count] AS '返回结果行数'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50 AND DB_NAME(der.[database_id])='gposdb'
ORDER BY [cpu_time] DESC
三、查询前10个最耗CPU时间的SQL语句
--在SSMS里选择以文本格式显示结果
SELECT TOP 10
dest.[text] AS 'sql语句'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50
ORDER BY [cpu_time] DESC
四、查询会话中有多少个worker在等待
SELECT TOP 10
[session_id],
[request_id],
[start_time] AS '开始时间',
[status] AS '状态',
[command] AS '命令',
dest.[text] AS 'sql语句',
DB_NAME([database_id]) AS '数据库名',
[blocking_session_id] AS '正在阻塞其他会话的会话ID',
der.[wait_type] AS '等待资源类型',
[wait_time] AS '等待时间',
[wait_resource] AS '等待的资源',
[dows].[waiting_tasks_count] AS '当前正在进行等待的任务数',
[reads] AS '物理读次数',
[writes] AS '写次数',
[logical_reads] AS '逻辑读次数',
[row_count] AS '返回结果行数'
FROM sys.[dm_exec_requests] AS der
INNER JOIN [sys].[dm_os_wait_stats] AS dows
ON der.[wait_type]=[dows].[wait_type]
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50
ORDER BY [cpu_time] DESC
五、查询CPU占用高的语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset
END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
ORDER BY [avg_cpu_cost] DESC
标签:SQL Server
您可能感兴趣
- sqlserver如何生成xml文件(实现SQL Server 原生数据从XML生成JSON数据的实例代码)
- sqlserver并发性能(sql server中的任务调度与CPU深入讲解)
- sqlserver基本知识(sql server学习基础之内存初探)
- 2015-10-1
- sql server 判断 null
- Sql Server事务日志
- sqlserver表值函数用法(SQL Server数据库中的表名称、字段比较)
- 怎么新建数据库登录名用sql语句(T-sql语句修改SQL Server数据库逻辑名、数据库名、物理名的方法)
- sql server信息管理案例(利用SQL Server数据库邮件服务实现监控和预警)
- sqlserver中复合索引(浅析SQL Server 聚焦索引对非聚集索引的影响)
- sqlserver降序排列(SQL SERVER临时表排序问题的解决方法)
- SQL SERVER中根据身份证号获取出生日期
- sql server 进阶(SqlServer AS的用法)
- zabbix监控sql server集群(zabbix 监控mysql的方法)
- sqlserver查看某个库所有表(SQL Server怎么找出一个表包含的页信息Page)
- sql server2012下载安装教程(SQL Server 2012 安装与启动图文教程)
- 心理学 四个金蟾,哪个最招财 测你今生的运势有多棒(心理学四个金蟾)
- 吉善缘《聚宝金蟾》金蟾招财摆件 三足全铜蟾蜍客厅店铺开业礼品(吉善缘聚宝金蟾金蟾招财摆件)
- 招财化煞神兽,金蟾变了(招财化煞神兽金蟾变了)
- 26岁杨紫的白素贞遇上24岁鞠婧祎,哪个最美(26岁杨紫的白素贞遇上24岁鞠婧祎)
- 鞠婧祎和杨紫两种风格的女生,你心里谁比较美(鞠婧祎和杨紫两种风格的女生)
- 三千年第一美女鞠婧祎出演白素贞pk杨紫,颜值胜赵雅芝王祖贤(三千年第一美女鞠婧祎出演白素贞pk杨紫)
热门推荐
- 怎么搭建apache服务器(Apache配置多个站点的方法)
- html5video怎么用(html5视频媒体标签video的使用方法及完整参数说明详解)
- mysql中修改表的字段名(MySQL 使用SQL语句修改表名的实现)
- 如何使用github中的python库(使用GitHub和Python实现持续部署的方法)
- python如何一行行读取文件(python 实现一次性在文件中写入多行的方法)
- 两个阿里云账号服务器内网通信(阿里云服务器怎么与租用香港服务器组内网?)
- laravel图文分离(Laravel 5.4前后台分离,通过不同的二级域名访问方法)
- vue组件详解(Vue的方法和属性案例详解)
- python编写一个名片(详解Python做一个名片管理系统)
- sqlserver定时计划(sql server deadlock跟踪的4种实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9