Sql-Server

將 TempDB 拆分為等於 CPU 數量的多個文件

  • September 26, 2019

文章SQL Server tempdb 最佳實踐提高性能建議我應該拆分tempdb為與核心數相等的文件數。因此,對於 4 個核心,您將獲得 4 個文件。

通過擁有更多數量的文件,您可以增加 SQL Server 可以隨時推送到磁碟的物理 I/O 操作的數量。SQL Server 可以下推到磁碟級別的 I/O 越多,數據庫執行的速度就越快。使用標準數據庫,SQL Server 可以將它需要的大量數據記憶體到記憶體中。由於 tempdb 的高寫入特性,需要先將數據寫入磁碟,然後才能將其記憶體回記憶體。

雖然理論上聽起來不錯,但作為一般優化真的那麼好嗎?它是否可能僅適用於 IO 非常高的特定係統?

長期以來,建議使用 TempDB 數據文件數量與機器核心數的 1/4 到 1/2 倍的比率……

但現在有更好的指導。在 2011 年的 PASS 上,我的好朋友 Bob Ward,他是 SQL 產品支持方面的佼佼者,他提出了一個新公式:如果你的核心少於 8 個,則使用 #files = #cores。如果您有超過 8 個核心,請使用 8 個文件,如果您看到記憶體爭用,請一次添加 4 個文件。$$ link $$

最後一句話一直是相關的。如果您沒有看到爭用,為什麼還要添加其他文件?為了安全起見,大多數會添加 2-4 個文件作為大多數建構的起點,但除此之外,還要進行測量和反應。

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