2013-02-18 46 views
1

我正在運行用於特殊用途應用程序的老式低效平板電腦上的SQL Server Express實例。 SQL Server進程會定期啓動,並在100%時使CPU停止運行。 (從技術上講,它並沒有停下來,它只是減慢到關鍵進程超時的時間。)硬件被替換之前還有兩三年的時間,所以這不是一種選擇。有沒有一種方法來節制SQL Server Express?SQL Server Express在單核平板電腦上以100%的CPU掛起

+0

你決定當它擊中100%的CPU它是做什麼?分頁到磁盤?懶惰的作家? – 2013-02-18 14:35:06

+0

我不知道。我將如何檢查? – Jeff 2013-02-18 14:49:56

+1

您正在使用什麼版本的SQL Server Express?事件日誌是否給你提供了關於發生什麼的線索?我認爲你本可以扼制SQL Server Express,但你可能要考慮解決這個問題。例如,您可以延長超時時間或提高應用程序的優先級。可能還有一個潛在的問題,但也許這足以讓你度過未來的兩三年。 – jerry 2013-02-22 21:46:07

回答

3

有幾種技術可以確定MSSQL上的CPU佔用活動,但由於當時您的機器完全沒有響應,因此您沒有多少選擇。使用SQL事件探查器運行後臺跟蹤日誌記錄到表或文件可能是你最好的選擇。

直到最近,您還需要使用MSSQL的付費版才能使用Profiler,但MS現在還包含MSSQL Express 2012 SP1的Profiler。這裏有一個直接的下載鏈接:

http://www.microsoft.com/en-us/download/details.aspx?id=35579

(請注意,你或許可以安裝探查不升級MSSQL服務器實例,如果你不希望)。

如果你從來沒有使用探查之前診斷的CPU佔用查詢,這裏就是我會建議去一下吧:

  • 新的跟蹤>連接到您的MSSQL instace
  • 確保「CPU 「列被選中
  • 確保所有查詢(Statement/Query/Batch/Procedure/etc)的」已啓動「和」已完成「事件都被檢查。
  • 使用「列過濾器」,只顯示事件,其中有在「CPU」列
  • 值的跟蹤,和目的地(表或.TRN文件)
  • 開始選擇一個名稱跟蹤並保持運行

遇到CPU問題後,一旦您的盒子恢復:打開跟蹤結果,特別注意CPU列和100%利用率開始的日期/時間。這裏有更多關於使用Profiler來分析跟蹤鏈接:

http://msdn.microsoft.com/en-us/library/ms175848.aspx