性能问题 - 并行性 - SQL Server

时间:2011-07-19 23:36:03

标签: performance sql-server-2008

SQL代理作业永远不会完成。

服务器:2.4hZ,24处理器,256GB RAM,Windows 2008 Server,SQL 2008

根据活动监视器:%ProcessTime为100%

在下面找到SP_Who:

SPID    Status  DBName  Command CPUTime ProgramName SPID
141 SUSPENDED                       STL UPDATE  5429    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22362478    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21178290    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22590708    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21682298    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  20652239    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22315694    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22362120    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21867097    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22746381    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  20301456    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22236445    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  19998611    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21139087    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22628117    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21512351    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21354649    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  20256823    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21185138    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21272530    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  22084796    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  20745996    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21812185    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  21738442    .Net SqlClient Data Provider    141
141 RUNNABLE                        STL UPDATE  20895694    .Net SqlClient Data Provider    141

根据它是24进程,查询被分成24个并行线程。

并行度的成本阈值设置为30,最大并行度为0(默认值)。

在Profiler中看不到任何内容,上面的所有线程都在等待CPU时间。

如何找到SQL Server正在做什么以及什么阻止了CPU?

1 个答案:

答案 0 :(得分:0)

我首先查看等待任务dmv,以查看查询正在等待的资源类型。此外,当前执行语句正在使用查询计划。

SELECT      *
FROM        sys.dm_os_waiting_tasks
WHERE       session_id = 141

SELECT      q.query_plan,
            r.*
FROM        sys.dm_exec_requests                    r
CROSS APPLY sys.dm_exec_query_plan(r.plan_handle)   q
WHERE       session_id = 141