天天看點

第四章——SQLServer2008-2012資源及性能監控(3)準備工作:步驟:分析:

本文将使用可靠性和性能螢幕來擷取記憶體相關的統計。

在開始之前,先來了解一下将要用到的計數器:

Ø  Memory: Available Mbytes:提供系統上可用記憶體的數量。

Ø  Memory: Pages/sec:顯示有多少頁被用于讀或寫入硬碟,這些基于硬頁面錯誤。

Ø  Paging File:%Usage:顯示挂起的總數的百分比。

Ø  SQL Server: Buffer Manager: Buffer cache hit ratio:傳回SQLServer從緩存但不是從硬碟傳回的資料的百分比。

Ø  SQL Server: Buffer Manager: Page life expectancy:顯示資料駐留在記憶體的平均秒數

Ø  SQL Server: Buffer Manager: Memory Grants Pending:等待記憶體工作區授予的程序數。

1、 

打開可靠性和性能螢幕,在【運作】中輸入perfmon.exe

2、 

選擇性能螢幕。

3、 

去除所有已存在的計數器。

4、 

添加新計數器。

5、 

選擇所要監視的伺服器。

6、 

選擇下面的計數器:

 Memory: Available Mbytes

 Memory: Pages/sec

 Paging File:%Usage

 SQL Server: Buffer Manager: Buffer cache hit

 SQL Server: Buffer Manager: Page life expectancy

 SQL Server: Memory Manager: Memory Grants Pending

7、 

然後點選确定。

上面這些步驟已經在前一章說明了。這裡就不累贅了。

       在本文中,再次使用了可靠性和性能螢幕這個工具。為了擷取記憶體相關的性能計數器,需要在圖形化界面中觀察這些計數器。

    首先先檢查Memory: Available Mbytes,這個值意味着系統的可用記憶體。如果發現這個值經常很低,可能表示伺服器記憶體不足,在生産資料庫中,這個值可以使用GB為機關。

    然後檢查Memory: Pages/sec ,以為這因為硬頁面錯誤導緻的從磁盤讀或寫頁面。這個值如果長期高于20,意味着記憶體不足使得應用程式使用虛拟記憶體,進而導緻挂起。

    接着是Memory: pages/sec ,同時也要檢查Paging File:%Usage去預估記憶體挂起。如果這個值經常超過20%,可能意味着記憶體不足。

    SQL Server: Buffer Manager: Buffer cache hit ratio:意味着資料從緩存中讀取的次數,比較合理的值為大于90%。如果該值很低,可能記憶體不足或者需要檢查索引和查詢。如果你需要獲得大量資料,這一步可能就會占用大量記憶體然後引起SQLServer從磁盤讀資料而不是從記憶體。檢查索引,確定在大表中能盡可能筆描掃描。并盡可能限制查詢傳回的結果行。

    檢查SQL Server: Buffer Manager: Page life expectancy,表示資料頁駐留在記憶體的秒數。微軟建議最少300秒。如果在一個執行個體中經常低于300秒,意味着資料保留的時間少于5分鐘就被移出記憶體。

    如果SQL Server: Memory Manager: Memory Grants Pending經常建議等待程序,你可能需要增加伺服器的記憶體了。

    不管什麼原因,如果你發現記憶體不足和挂起發生得比較頻繁,你首先應該檢查是否有非SQL Server的其他應用或者服務耗費了比SQL Server更加多的記憶體。如果你發現這些應用或者服務,嘗試移到别的伺服器。如果做不到,那麼需要增加更多的記憶體,以供SQLServer使用。

    如果伺服器僅僅工SQL Server使用且沒有上面說的情況,那麼要分析你的查詢和索引,以確定他們是最優化的。如果已經優化好,還是存在這些問題,那麼才需要考慮增加記憶體。

    除了可靠性和性能螢幕,還可以使用SQL Server Profiler來監控性能,建立一個使用者自定義收集器并存為檔案,當你從性能螢幕中擷取性能資料時,SQL Server Profiler會同步運作。一旦你完成收集,可以把性能資料導入到SQLServer Profiler中供任何時候分析。