Share via


tempdb 資料庫

更新: 2006 年 4 月 14 日

tempdb 系統資料庫是全域資源,適用於所有連接到 SQL Server 執行個體的使用者,且可用來保留下列項目:

  • 明確建立的暫存使用者物件 (例如:全域或本機暫存資料表、暫存預存程序、資料表變數或資料指標)。
  • SQL Server 2005 Database Engine 所建立的內部物件 (例如,儲存多工緩衝處理或排序之中繼結果集的工作資料表)。
  • 由資料庫中的資料修改交易所產生的資料列版本,該資料庫採用使用資料列版本控制隔離的讀取認可或快照集隔離交易。
  • 由以下這類功能的資料修改交易所產生的資料列版本:線上索引作業、Multiple Active Result Set (MARS) 和 AFTER 觸發程序。

tempdb 中的作業會以最低限度記錄。這可讓您回復交易。每次啟動 SQL Server 時都會重新建立 tempdb,這樣系統永遠會以乾淨的資料庫副本啟動。連接中斷時會自動卸除暫存資料表與預存程序,且系統關閉時所有連接都會停止。因此,tempdb 中的任何資料都不會從 SQL Server 的一個工作階段儲存到其他的工作階段。tempdb 不允許進行備份和還原作業。

tempdb 的實體屬性

下表列示 tempdb 資料和記錄檔的初始組態值。對於不同版本的 SQL Server 2005,這些檔案的大小稍有不同。

檔案 邏輯名稱 實體名稱 檔案成長

主要資料

tempdev

tempdb.mdf

以百分之 10 的比例自動成長,直到磁碟全滿

記錄

templog

templog.ldf

以 10% 的比例自動成長,最大至 2 TB

tempdb 的大小會影響系統效能。例如,若 tempdb 太小,則每次啟動 SQL Server 時,資料庫自動成長的情形都會過多地佔用系統處理的資源,而無法支援工作負載的需求。增加 tempdb 的大小即可避免這種負擔。如需詳細資訊,請參閱<最佳化 tempdb 效能>和<tempdb 的容量計劃>。

tempdb 中的效能改進

在 SQL Server 2005 中,會以下列方式改進 tempdb 效能:

  • 可能會快取暫存資料表和資料表變數。快取允許卸除和建立暫存物件以極快速度執行的作業,並減少頁面配置爭用。
  • 已改進配置頁面閂鎖通訊協定。這會減少所使用的 UP (更新) 閂鎖數目。
  • 會減少 tempdb 的記錄負擔。這會減少 tempdb 記錄檔的磁碟 I/O 頻寬耗用量。
  • 已改進在 tempdb 中配置混合頁面的演算法。

移動 tempdb 資料和記錄檔

若要移動 tempdb 資料和記錄檔,請參閱<移動系統資料庫>。

資料庫選項

下表列出 tempdb 資料庫中每個資料庫選項的預設值,以及這些選項是否可以修改。若要檢視這些選項目前的設定,請參閱 sys.databases 目錄檢視。

資料庫選項 預設值 可以修改

ALLOW_SNAPSHOT_ISOLATION

OFF

ANSI_NULL_DEFAULT

OFF

ANSI_NULLS

OFF

ANSI_PADDING

OFF

ANSI_WARNINGS

OFF

ARITHABORT

OFF

AUTO_CLOSE

OFF

AUTO_CREATE_STATISTICS

ON

AUTO_SHRINK

OFF

AUTO_UPDATE_STATISTICS

ON

AUTO_UPDATE_STATISTICS_ASYNC

OFF

CONCAT_NULL_YIELDS_NULL

OFF

CURSOR_CLOSE_ON_COMMIT

OFF

CURSOR_DEFAULT

GLOBAL

資料庫可用性選項

ONLINE

MULTI_USER

READ_WRITE

DATE_CORRELATION_OPTIMIZATION

OFF

DB_CHAINING

ON

NUMERIC_ROUNDABORT

OFF

PAGE_VERIFY

NONE

PARAMETERIZATION

SIMPLE

QUOTED_IDENTIFIER

OFF

READ_COMMITTED_SNAPSHOT

OFF

RECOVERY

SIMPLE

RECURSIVE_TRIGGERS

OFF

Service Broker 選項

ENABLE_BROKER

TRUSTWORTHY

OFF

如需這些資料庫選項的描述,請參閱<ALTER DATABASE (Transact-SQL)>。

限制

下列作業不能在 tempdb 資料庫上執行:

  • 加入檔案群組。
  • 備份或還原資料庫。
  • 變更定序。預設定序是伺服器定序。
  • 變更資料庫擁有者。 tempdb 的擁有者為 dbo
  • 建立資料庫快照集。
  • 卸除資料庫。
  • 從資料庫卸除 guest 使用者。
  • 參與資料庫鏡像。
  • 移除主要檔案群組、主要資料檔或記錄檔。
  • 重新命名資料庫或主要檔案群組。
  • 執行 DBCC CHECKALLOC。
  • 執行 DBCC CHECKCATALOG。
  • 將資料庫設定為 OFFLINE。
  • 將資料庫或主要檔案群組設定為 READ_ONLY。

請參閱

工作

tempdb 磁碟空間不足的疑難排解

概念

最佳化 tempdb 效能
tempdb 的容量計劃
建立 tempdb 與索引
系統資料庫

其他資源

sys.databases (Transact-SQL)
sys.master_files (Transact-SQL)
移動資料庫檔案

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

新增內容:
  • 將資料庫快照集 DBCC CHECKALLOC 和 DBCC CHECKCATALOG 新增至受限制作業的清單。
  • 新增 tempdb 不允許進行備份和還原作業。

2005 年 12 月 5 日

新增內容:
  • 新增效能改進小節。
變更的內容:
  • 移除對 SUPPLEMENTAL_LOGGING 選項的參考。