SQLSERVER当前的连接数不多,为什么CPU的使用率很高?
这其实有很多原因的,计算量很大,SQL语句的嫌疑最大,于是就想办法怎么找出SQL,正在运行的系统,一般不建议用Profile跟踪,那么可以通过系统表和函数把他找出来
查询当前系统的连接信息,可以用SQL Server数据库本身提供了一个DMV
SELECT * FROM sys.dm_exec_sessions WHERE host_name IS NOT NULL
第一步:先查询系统表SYSPROCESSES,找出CPU量使用最大的,找出它的sql_handle
SELECT spid,
kpid,
waittype,
waittime,
lastwaittype,
cpu,
dbid,
sql_handle FROM [Master].[dbo].[SYSPROCESSES]
where dbid=DB_ID('数据库名')

当SQLSERVER的CPU使用率高但连接数不多时,可能由于复杂SQL语句导致。可以利用系统表和函数进行排查。首先,通过查询SYSPROCESSES找出CPU使用最高的sql_handle,然后根据该handle获取相应的SQL语句。这种方法适用于SQLSERVER 2008及更高版本。
6197

被折叠的 条评论
为什么被折叠?



