我的數據庫服務器突然使用了100%的處理,並且似乎我的網站上沒有任何流量。我能做些什麼來查看增加的流量來自SQL Server Management Studio內部的位置?以100%運行的數據庫
回答
處理器使用率高的典型原因是來自存儲過程或其他方面的未優化查詢。我會看看你經常運行哪些存儲過程,並確保它們有效地運行並被正確地編入索引。 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
OP狀態'服務器突然使用100%的處理,它似乎沒有任何更多的流量',而這可能是不好的疑問,我認爲「突如其來」意味着這是一個尖銳的問題,而不是一個長期的問題,這通常是不好的問題。 – 2010-03-05 16:00:29
嘗試檢查文件中的可用空間量。它可能是,SQL是關閉的提高您的MDF/LDF
的大小如果你沒有太多的自由空間通過設置固定的大小,而不是%
增加看一看在SQL Server活動監視器,特別是CPU列。也許你有一個或多個查詢運行狂野。
服務器危機I次,我發現活動監視器凍結。如果發生這種情況,您通常仍然可以從我的答案中運行查詢以獲取相同的信息,包括spid,阻止信息,cpu使用情況和查詢文本。 – 2010-03-05 16:04:32
好點 - 活動監視器可能在內部做類似的事情,但它需要更多的CPU用於花哨的UI。 – Ray 2010-03-05 17:30:44
雖然我使用這個查詢來快速檢查阻塞(低開銷),你可以用它來看看你有多少進程在運行,每個進程的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 [email protected]@SPID
如果您認爲有一個進程正在運行,您可以始終發出'KILL n',其中'n'是上述查詢的spid。 http://msdn.microsoft.com/en-us/library/ms173730.aspx – 2010-03-05 15:51:10
- 1. 以100%CPU運行的Netty
- 2. CPU運行在100%以上
- 3. 運行100次函數
- 4. 磁盤始終以100%運行 - Windows 10
- 5. Apache的CPU 100%時,查詢數據庫
- 6. 100%內存中的HSQL數據庫
- 7. TestNG並運行100個數據變量的相同測試
- 8. 以定義的數據庫角色運行應用程序
- 9. 以更快的速度運行插入數據庫任務
- 10. 你可以瀏覽正在運行的VoltDB數據庫嗎?
- 11. 運行沒有數據庫的wordpress
- 12. 數據庫運行的空間
- 13. 運行腳本語言的數據庫
- 14. Java的「100%」,以數
- 15. 是否可以對Android SQLite數據庫執行大約100次查詢以保存數據項?
- 16. 在運行時用另一個數據庫替換數據庫。
- 17. 數據庫服務器無故100%
- 18. 我們可以針對MySQL數據庫運行Oracle Forms嗎?
- 19. AsyncTask可以在服務中運行並寫入數據庫嗎?
- 20. 如何保持MySQL數據庫以最佳性能運行?
- 21. 如何檢查數據庫是否以只讀模式運行?
- 22. 定期運行C#應用程序以更新數據庫
- 23. 數據庫運行時可以修改cnf文件嗎?
- 24. 可以運行,顯示針對SQL數據庫(SQL,運行時間等)運行最慢的查詢
- 25. 使用powershell編寫100行oracle數據庫
- 26. 從mysql數據庫中檢索最後100行
- 27. QuickBooks php DevKit數據庫查詢只返回100行
- 28. Oracle數據庫更改通知和1800字節/ 100行限制
- 29. 禁用數據庫寫入空運行
- 30. 使用rspec-rails運行數據庫
任何後臺進程?備份運行?預定的工作? – shahkalpesh 2010-03-05 15:22:36
沒有別的東西在運行。我們無法查詢數據庫,因爲它太高了。 – Jason 2010-03-05 15:23:42
這個問題可能更適合於serverfault.com。 – 2010-03-05 15:25:28