首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2016 TempDB 重大改進:安裝自動配置、統一區分配、自動成長優化

     編輯:關於SqlServer

安裝精靈內建 TempDB 配置

SQL Server 2016 安裝過程新增「TempDB」頁簽,依 CPU 核心數自動規劃資料檔數量:

CPU 核心數TempDB 資料檔數
≤ 8等於核心數
> 88

安裝精靈 TempDB 設定

可指定多個資料夾,安裝程式自動循環分配(Round-robin),有效緩解 Latch Contention(闩鎖競爭)。

缺點:預設初始大小 8MB、自動成長 64MB,生產環境建議安裝後手動調大初始值並啟用瞬間檔案初始化(IFI)。

統一區分配取代混合區

舊版本:前 8 頁使用 混合區(共享,64KB),第 9 頁起改用 統一區。
啟用追蹤旗標 1118 可強制全域統一區分配,減少 SGAM 閩鎖爭用。

SQL 2016 行為:TempDB 物件永遠直接分配統一區,無需 1118,其他資料庫維持混合區機制。

-- 驗證腳本
USE tempdb;
CREATE TABLE #t (c1 INT IDENTITY PRIMARY KEY, c2 CHAR(8000));
INSERT INTO #t VALUES (REPLICATE('a',8000)); GO 7
DBCC TRACEON(3604);
DBCC IND(tempdb, '#t...', -1);  -- 查看頁配置
DBCC PAGE (tempdb, 5, 33, 3);   -- IAM 頁顯示完整統一區
DROP TABLE #t;

自動成長同步化(相當於 1117)

舊版需開啟 1117 讓同檔案組所有檔案同步成長,維持比例填充演算法效率。
SQL 2016:TempDB 內建同步自動成長,無需追蹤旗標。

總結與展望

  • 安裝階段自動多檔案配置 → 消除 90% 新手環境的 TempDB 閩鎖問題。
  • 統一區分配 + 同步成長 → 移除兩個最常被誤解/遺漏的追蹤旗標依賴。
  • 期待未來版本在安裝精靈同步提供 MAXDOP、Cost Threshold for Parallelism、Max Server Memory 建議值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved