Sql-Server

SQL Server 2005 中出現無法解釋的 CPU 和磁碟活動峰值

  • March 17, 2015

數據庫伺服器性能監控

在我提出問題之前,請允許我描述一下情況。我有一個數據庫伺服器,有許多表。兩個最大的表每個都包含超過 800k 行。大多數行的大小都小於 10k,儘管 100 行中大約有 1 行大於 1 MB 但小於 4 MB。因此,在 160 萬行中,大約有 16000 行是這些大行。它們這麼大的原因是因為我們將 zip 文件二進制 blob 儲存在數據庫中,但我離題了。

我們有一個在後台持續執行的服務,從這兩個表中的每一個中修剪 10 行。在上面的性能監視器圖中,這些是小顛簸(紅色表示 CPU,綠色表示磁碟隊列)。每隔一分鐘,我們就會出現 CPU 活動的大幅峰值以及磁碟活動的跳躍,如螢幕截圖中的紅色箭頭所示。

我已經執行了 SQL Server 分析器,沒有任何東西可以作為候選者來解釋這個峰值。我懷疑當刪除其中一個大行時會發生這種峰值。我已經將分析器的結果輸入到調整嚮導中,但我沒有得到任何優化建議(即我假設這意味著我的數據庫已針對我目前的工作負載正確索引)。

我並不過分擔心,因為伺服器在所有情況下都能很好地應對,即使在峰值負載下也是如此。但是,我想知道是否還有其他方法可以找出導致此峰值的原因?

更新:

在對此進行了更多調查後,CPU 和磁碟使用率峰值下降到 SQL Server 的自動檢查點。數據庫使用簡單恢復模型,這會在每個檢查點截斷日誌文件。我們可以在下圖中看到這一點。檢查點/秒和使用的日誌百分比MSDN所述,當事務日誌已滿 70% 並且我們使用簡單恢復模型時,將出現檢查點。

這很有啟發性,我肯定學到了一些東西!

檢查點,寫出更改的數據庫頁面。在許多情況下,這不會一直發生。

https://stackoverflow.com/questions/865659/sql-server-checkpoints

引用自:https://serverfault.com/questions/332825