早期 Microsoft 官方文件與大量部落文建議「TempDB 檔案數 = CPU 核心數(1:1)」。但這源自 SQL CAT 團隊面對極大型客戶的擴展性測試,非通用法則。
只有當觀測到 PAGELATCH_* 等待(配置頁 GAM/SGAM/PFS 爭用) 時,才考慮增加檔案。若為 PAGEIOLATCH 則是 I/O 子系統瓶頸,增加檔案無效。
預設從 1/2/4/8 個檔案起步(視核心數),監控 sys.dm_os_wait_stats 中的 PAGELATCH 等待,僅在確認配置爭用時逐步增加。 在擴展性與單查詢效能間取得平衡。
TempDB 檔案無需分散多個儲存裝置。PAGELATCH 爭用分散儲存無效;PAGEIOLATCH 才考慮移動整個 TempDB 至更快儲存,而非只是增加單一檔案。