SQL Server 2016 安裝精靈新增 Tempdb 配置頁面,自動偵測可用邏輯 CPU 核心數並依下列規則預設資料檔案數:
| 邏輯 CPU 核心數 | Tempdb 資料檔案數 |
|---|---|
| ≤ 8 | 等於核心數 |
| > 8 | 8 |
範例:2 核→2 檔、4 核→4 檔、8 核→8 檔、32 核→8 檔。安裝精靈亦支援指定多個資料夾,以循環方式 (Round-robin) 分散檔案,進一步分散 I/O。
遺憾:預設初始大小 8 MB、自動成長 64 MB,生產環境仍需安裝後依負載調大初始值、改固定成長量 (如 256/512 MB)。
PAGELATCH_UP 爭用。USE tempdb;
CREATE TABLE #t (c1 INT IDENTITY PRIMARY KEY, c2 CHAR(8000) NOT NULL);
INSERT INTO #t VALUES (REPLICATE('a', 8000)); -- 分配 1 頁
DBCC TRACEON(3604);
-- 取得 IAM 頁
DECLARE @iam_page VARCHAR(100);
SELECT @iam_page = CAST(page_id AS VARCHAR) FROM sys.dm_db_database_page_allocations(DB_ID(), OBJECT_ID('tempdb..#t'), NULL, NULL, 'DETAILED') WHERE page_type = 10;
DBCC PAGE(tempdb, 1, @iam_page, 3); -- 觀察 IAM 頁面,確認無 Mixed Extent 位元
DROP TABLE #t;
| 指標 | SQL 2014 (預設 1 檔) | SQL 2016 (預設 N 檔 + 統一區 + 同步成長) |
|---|---|---|
| SGAM/PFS 爭用 | 高併發明顯 | 幾乎消除 |
| 安裝後即可用 | 需手動調整 | 開箱即用 |
| 追蹤旗標依賴 | 1117/1118 必開 | 零依賴 |
Microsoft 終於在安裝層面落實 Tempdb 最佳實務。期待後續版本能在安裝精靈同步建議 MAXDOP、Cost Threshold for Parallelism、Max Server Memory 等關鍵配置,進一步降低「預設安裝即上線」的風險。