Sql-Server

減少 tempdb 延遲的選項有哪些?

  • January 14, 2014

負責監控和調整 SQL Servers 2012 Enterprise Ed。Windows Server 2008 R2 標準版上的 SP1(64 位)。

它們都在虛擬機中執行。每個區域辦事處在單個 RAID10 或 RAID5 上配備一台 SQL Server。換句話說,我不可能使用不同的物理單元(硬碟驅動器)來配置 SQL Server。

tempdb我觀察到系統數據庫的讀寫延遲增加。

在減少tempdb數據庫延遲方面我有哪些選擇?

你有兩個基本的選擇。

  1. 減少 tempdb 數據庫所需的工作負載
  2. 獲得更快的硬碟

至於#1,在其他數據庫中尋找缺失的索引。修復失去的索引將減少對 tempdb 數據庫的溢出,從而減少工作量。

如果伺服器上的應用程序大量使用臨時表,那麼您只能獲得更快的硬碟驅動器。

綜上所述,如果延遲問題出在 tempdb 數據庫中的 PFS 頁面上(您需要找到存在延遲問題的特定頁面 ID),那麼修復很容易,添加更多 tempdb 數據庫文件。

選項 3。

減少臨時數據庫的分配爭用。Microsoft 建議設置多個 tempdb 文件。對於執行超過 8 個核心的機器,一般建議是 8 個文件。然後再增加 4 個文件,直到你能夠減少它。

症狀:“當 SQL Server 負載過重時,您觀察到嚴重阻塞。當您檢查動態管理視圖時

$$ sys.dm_exec_request or sys.dm_os_waiting_tasks $$,您觀察到這些請求或任務正在等待 tempdb 資源。您會注意到等待類型和等待資源指向 LATCH 在 tempdb 中的頁面上等待。這些頁面可能採用 2:1:1、2:1:3 等格式。” 更多細節在這裡

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