数据库运行率为100%

时间:2010-03-05 15:19:50

标签: database sql-server-2005 ssms

我的数据库服务器突然使用100%的处理,似乎我的网站上没有更多的流量。如何查看SQL Server Management Studio内部流量增加的位置?

4 个答案:

答案 0 :(得分:1)

虽然我使用此查询快速检查阻塞(开销较低),但您可以使用它查看已运行的进程数,每个进程的cpu时间,读取,写入和logical_reads :

;with Blockers AS
(   SELECT

        r.session_id AS spid
            ,r.blocking_session_id AS BlockingSPID
            ,LEFT(OBJECT_NAME(st.objectid, st.dbid),50) AS ShortObjectName
            ,LEFT(DB_NAME(r.database_id),50) AS DatabaseName
            ,s.program_name
            ,s.login_name
            ,r.cpu_time,r.reads,r.writes,r.logical_reads 
            ,OBJECT_NAME(st.objectid, st.dbid) AS ObjectName
            ,SUBSTRING(st.text, (r.statement_start_offset/2)+1,( (CASE r.statement_end_offset
                                                                      WHEN -1 THEN DATALENGTH(st.text)
                                                                      ELSE r.statement_end_offset
                                                                  END - r.statement_start_offset
                                                                 )/2
                                                               ) + 1
                      ) AS SQLText
        FROM sys.dm_exec_requests                          r
            JOIN sys.dm_exec_sessions                      s ON r.session_id = s.session_id
            CROSS APPLY sys.dm_exec_sql_text (sql_handle) st
    --WHERE r.session_id > 50
)
SELECT Blockers.* FROM Blockers WHERE spid!=@@SPID

答案 1 :(得分:1)

高处理器使用率的典型原因是来自存储过程或其他方面的未经优化的查询。我将查看您经常运行的存储过程,并确保它们正在高效运行并正确编入索引。

这个和资源的一些例子: http://msmvps.com/blogs/omar/archive/2006/08/15/100-cpu-100-io-a-near-death-experience-for-sql-server-2005-and-us.aspx

http://www.aneef.net/2009/04/11/100-cpu-sql-server-2005-servers-crashes/

关于性能调优的文章: http://207.46.16.252/en-us/magazine/2007.10.sqlcpu.aspx

答案 2 :(得分:0)

尝试检查文件中的可用空间量。 SQL可能会增加你的mdf / ldf

的大小

如果您没有太多可用空间设置增加固定大小而不是%

答案 3 :(得分:0)

看一下sql server activity monitor,特别是cpu列。也许你有一个或多个疯狂的查询。