在SQL Server 上可監控什麼(第 1 部分)文章中,我們重溫了四個要監視的主要效能度量類別的其中兩個:磁碟活動和處理器使用率,以便測量 SQL Server 的效率。本篇文章將涵蓋其餘兩個類別:記憶體和伺服器作業。
記憶體
記憶體使用率監視嘗試判斷資料庫司服器在處理請求時使用的記憶體量。你應該定期監視 SQL Server 執行個體,以確認記憶體使用量是否在標準範圍內。
預設情況下,SQL Server 會根據作業系統報告的實體記憶體負載動態地增大和縮小其緩存集區(快取)的大小。只要有足夠的記憶體(在4 MB 與 10 MB 之間)可用於防止分頁,SQL Server 緩存集區將繼續增大。由於 SQL Server 與在同一部電腦上的其他處理序配置記憶體一樣,SQL Server 的 Buffer Manager 將根據需要釋放記憶體。SQL Server 可以每秒釋放和取得數 MB 的記憶體。這可讓 SQL Server 能夠快速調整記憶體配置的變更。
SQL Server 使用物件和計數器工作,每個物件包含一個或多個計數器。例如,Buffer Manager 物件提供計數器來監視 SQL Server 如何使用記憶體來儲存資料分頁和緩存集區。
若要監視記憶體不足的情況,請使用以下計數器:
Available MBs:代表有多少記憶體可供新的處理序使用。如果可用的記憶體持續偏低且無法減少伺服器負載,則需要增加更多 RAM。
Pages/sec:此計數器代表存取虛擬記憶體的次數。根據經驗,它應該低於 20。數值過高可能代表過度分頁。使用 Memory: Page Faults/sec 可以進一步指出是 SQL Server 或其他處理序導致它。
你還可以使用「最小伺服器記憶體」及「最大伺服器記憶體」設定選項為 SQL Server 資料庫引擎使用記憶體數量建立上限和下限。
其他與伺服器相關的度量
雖然磁碟活動、處理器使用率和記憶體是最重要的監視區域,但還有一些其他一般的伺服務器度量值得檢查。
Access Methods – Full scans/sec:數值過高(大於 1 或 2)可能代表你沒有使用索引而使用資料表掃描。
Buffer Manager – Buffer Cache hit ratio:這是由資料快取提供服務的請求的百分比。當正確使用快取時,這應該超過 90%。可以藉由增加更多 RAM 來改進計數器。
Memory Manager – Target Server Memory (KB):指 SQL Server「想要」的記憶體數量。如果這與 Memory Manager – Total Server Memory (KB) 計數器(見下文)相同,那麼你就知道 SQL Server 具有所需的全部記憶體。
Memory Manager – Total Server Memory (KB):SQL Server 實際已使用的記憶體數量。如果小於 Memory Manager – Target Server Memory (KB),那麼 SQL Server 可以受益於更多記憶體。
Locks – Average Wait Time:此計數器顯示取得鎖定所需的平均時間。這個值必須盡可能低。如果異常高,你可能需要尋找封鎖的處理序。你可能還需要檢查使用者的 SQL 語句,以及檢查是否存在任何其他 I/O 瓶頸。
儘管這些度量非常有用,但是 SQL Server 也提供許多其他可能派上用場的度量。我們將會在日後的文章中研究其他度量。