Sql-Server

在 MS SQL Server 上發送和檢索重複數據的單個查詢?

  • November 3, 2012

發生了非常奇怪的事情。似乎我們系統針對特定數據庫的所有查詢都週期性地“執行緩慢” **。**即“正常速度”5 分鐘,然後慢5 分鐘(大致)。

在進一步調查(在消除“明顯”的幾天后)看來,有時客戶端(Sql Server Management Studio)多次發送查詢並多次接收。

即“從客戶端發送的字節”將加倍甚至三倍,而“從伺服器接收的字節”也會這樣做。顯然,“客戶端處理時間”和“總執行時間”的增加模式相似。

這甚至發生SELECT * FROM table在表上有 3 行數據的情況下!

一個查詢變慢時,它們都會變慢。不管查詢/結果集多麼簡單,或者正在訪問哪個“客戶端”(在基於 ADO.NET 的控制台應用程序/MVC Web 應用程序中也是如此)。

任何建議將不勝感激…

編輯

  1. 無法重新創建“多個查詢”的東西。不知道為什麼會這樣,似乎是一個異常情況,暫時把我們帶進了錯誤的小巷
  2. @Brent Ozar - 謝謝你的建議 - 我們已經執行了這些類型的測試,不幸的是,沒有有用的結果!
  3. @jco360 - 感謝您的建議。由於整個數據庫的性能很慢(一個慢 = 全部慢,然後一個快 = 全部快),因此索引不是一個啟動器。我開發人員,在從 SSMS 執行簡單查詢時遇到了同樣的問題。最後,硬體問題可能是答案,雖然 64GB 記憶體和許多處理器應該足以滿足幾乎不使用的伺服器,但可能存在一些硬碟損壞或類似情況?

它也與網路無關,因為測試是從盒子本身執行的。

嘗試在伺服器活動上執行 sql 配置文件跟踪 (http://technet.microsoft.com/en-us/library/ms175047.aspx) - 您可能會遇到一些由同時執行的查詢鎖定表/頁面/索引引起的表鎖定問題.

嘗試執行 perfmon - 當事情變慢時,可能有一些正在執行的東西正在使用所有可用的磁碟/IO/CPU/記憶體資源。尋找任何記憶體交換 - 這會減慢速度。如果是其中之一,那麼您將需要追查原因。注意 CPU 在短時間內處於 100% 狀態是可以的(實際上可以表示最佳性能)。

還要檢查碎片並考慮重建索引。

關閉不需要的服務/應用程序——它們會佔用更適合您的應用程序的資源。

如果一切都很慢並且時間真的很一致,那麼我的猜測將是伺服器上的服務有問題。

一個明顯的選擇是病毒保護,因為某些風味會掛接到 I/O 以擷取低級別的內容。

它也可以像更新檢查器一樣簡單,它會弄亂您的網路堆棧。

備份系統也可能出現故障。

你調查過這些事情嗎?

引用自:https://dba.stackexchange.com/questions/16966