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

TempDB 為何更快?深度解析其日誌機制與實測數據

     編輯:關於SqlServer

實測設計

分別在使用者資料庫、TempDB(暫存表)、TempDB(永久表)建立相同結構表,插入 10 萬筆 `CHAR(8000)` 資料,比較執行時間。

測試腳本

-- 使用者資料庫
USE testpage;
CREATE TABLE t1 (id INT IDENTITY, str1 CHAR(8000));
-- 迴圈插入 10 萬筆,計時

-- TempDB 暫存表
USE tempdb;
CREATE TABLE #t1 (id INT, str1 CHAR(8000));
-- 相同插入邏輯

-- TempDB 永久表
USE tempdb;
CREATE TABLE t1 (id INT, str1 CHAR(8000));
-- 相同插入邏輯

結果分析

使用者資料庫耗時 60 秒,TempDB 暫存表僅 22 秒,TempDB 永久表 27 秒(圖 1)。

執行時間比較

圖 1. 三環境執行時間比較

核心原因:最小化日誌記錄

TempDB 採用極簡日誌模式:僅記錄足以支援交易回滾的資訊,不保證媒體復原,大幅減少日誌寫入量與 `LOGBYTES FLUSHED/SEC`,故大量異動操作極快。

同理可觀察效能計數器 `Log Bytes Flushed/sec` 驗證。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved