Sql-Server
減少 tempdb 延遲的選項有哪些?
負責監控和調整 SQL Servers 2012 Enterprise Ed。Windows Server 2008 R2 標準版上的 SP1(64 位)。
它們都在虛擬機中執行。每個區域辦事處在單個 RAID10 或 RAID5 上配備一台 SQL Server。換句話說,我不可能使用不同的物理單元(硬碟驅動器)來配置 SQL Server。
tempdb
我觀察到系統數據庫的讀寫延遲增加。在減少
tempdb
數據庫延遲方面我有哪些選擇?
你有兩個基本的選擇。
- 減少 tempdb 數據庫所需的工作負載
- 獲得更快的硬碟
至於#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 等格式。” 更多細節在這裡