运行在97%的CPU使用率的SQL Server 2005

如何找出哪些语句正在使用CPU?

我使用这个脚本。 你将需要修改,因为你认为适合过滤的应用程序,最后批处理时间等…

SELECT top 50 D.text SQLStatement, A.program_name, A.Session_ID SPID, ISNULL(B.status,A.status) Status, A.login_name Login, A.host_name HostName, C.BlkBy, DB_NAME(B.Database_ID) DBName, B.command, ISNULL(B.cpu_time, A.cpu_time) CPUTime, ISNULL((B.reads + B.writes),(A.reads + A.writes)) DiskIO, A.last_request_start_time LastBatch FROM sys.dm_exec_sessions A LEFT JOIN sys.dm_exec_requests B ON A.session_id = B.session_id LEFT JOIN ( SELECT A.request_session_id SPID, B.blocking_session_id BlkBy FROM sys.dm_tran_locks as A INNER JOIN sys.dm_os_waiting_tasks as B ON A.lock_owner_address = B.resource_address ) C ON A.Session_ID = C.SPID OUTER APPLY sys.dm_exec_sql_text(sql_handle) D where D.text is not null order by cputime desc 

Management Studio>当前活动

要么

在查询窗口中执行sp_who2

如果这是一个持续的问题,你也可以运行一个跟踪来获得更详细的信息随着时间的推移。