tempdb

tempdb

tempdb 資料庫,tempdb 系統資料庫是一個全局資源,可供連線到 SQL Server 實例的所有用戶使用。

基本介紹

  • 中文名:tempdb
  • 類型:資料庫
  • 用途:顯示創建的臨時用戶對象
  • 用戶:SQL Server 實例的所有用戶
其他版本,物理屬性,性能提高,移動檔案,資料庫選項,限制,許可權,

其他版本

tempdb 資料庫SQL Server 2014 其他版本
tempdb
可用於保存下列各項:
  • 顯示創建的臨時用戶對象,例如全局或局部臨時表、臨時存儲過程、表變數或游標。
  • SQL Server 資料庫引擎創建的內部對象,例如,用於存儲假脫機或排序的中間結果的工作表。
  • 由使用已提交讀(使用行版本控制隔離或快照隔離事務)的資料庫中數據修改事務生成的行版本。
  • 由數據修改事務為實現在線上索引操作、多個活動的結果集 (MARS) 以及 AFTER 觸發器等功能而生成的行版本。
tempdb 中的操作是最小日誌記錄操作。這將使事務產生回滾。每次啟動 SQL Server 時都會重新創建 tempdb,從而在系統啟動時總是保持一個乾淨的資料庫副本。在斷開聯接時會自動刪除臨時表和存儲過程,並且在系統關閉後沒有活動連線。因此 tempdb 中不會有什麼內容從一個 SQL Server 會話保存到另一個會話。不允許對 tempdb 進行備份和還原操作。

物理屬性

下表列出了 tempdb 數據和日誌檔案的初始配置值。對於不同版本的 SQL Server,這些檔案的大小可能略有不同。
檔案邏輯名稱物理名稱檔案增長
主數據
tempdev
tempdb.mdf
按 10% 自動增長,直到磁碟已滿
日誌
templog
templog.ldf
以 10% 的速度自動增長到最大 2 TB
tempdb 的大小可以影響系統性能。例如,如果 tempdb 的大小太小,則每次啟動 SQL Server 時,系統處理可能忙於資料庫的自動增長,而不能支持工作負荷要求。可以通過增加 tempdb 的大小來避免此開銷。

性能提高

在 SQL Server 中,tempdb 性能以下列方式進行提高:
  • 可能快取臨時表和表變數。快取允許刪除和創建臨時對象的操作非常快速地執行,並減少頁分配的爭用問題。
  • 分配頁閂鎖協定得到改善。從而減少使用的 UP(更新)閂鎖數。
  • 減少了 tempdb 的日誌開銷。從而降低了 tempdb 日誌檔案上的磁碟 I/O 頻寬占用。
  • 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
CHANGE_TRACKING
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
ENCRYPTION
OFF
NUMERIC_ROUNDABORT
OFF
PAGE_VERIFY
對於新安裝的 SQL Server,為 CHECKSUM。
對於升級的 SQL Server,為 NONE。
PARAMETERIZATION
SIMPLE
QUOTED_IDENTIFIER
OFF
READ_COMMITTED_SNAPSHOT
OFF
RECOVERY
SIMPLE
RECURSIVE_TRIGGERS
OFF
Service Broker 選項
ENABLE_BROKER
TRUSTWORTHY
OFF
有關這些資料庫選項的說明,請參閱 ALTER DATABASE SET 選項 (Transact-SQL)。

限制

不能對 tempdb 資料庫執行以下操作:
  • 添加檔案組。
  • 備份或還原資料庫。
  • 更改排序規則。默認排序規則為伺服器排序規則。
  • 更改資料庫所有者。tempdbdbo 擁有。
  • 創建資料庫快照。
  • 刪除資料庫。
  • 從資料庫中刪除 guest 用戶。
  • 啟用變更數據捕獲。
  • 參與資料庫鏡像。
  • 刪除主檔案組、主數據檔案或日誌檔案。
  • 重命名資料庫或主檔案組。
  • 運行 DBCC CHECKALLOC。
  • 運行 DBCC CHECKCATALOG。
  • 將資料庫設定為 OFFLINE。
  • 將資料庫或主檔案組設定為 READ_ONLY。

許可權

任何用戶都可以在 tempdb 中創建臨時對象。用戶只能訪問自己的對象,除非他們獲得更多的許可權。可以撤消對 tempdb 的連線許可權以阻止用戶使用 tempdb,但是不建議這樣做,因為一些例行操作需要使用 tempdb。

相關詞條

熱門詞條

聯絡我們