tempdb系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫非常相似。主要的區(qū)別是,SQL服務器關閉后,tempdb中的數(shù)據(jù)不會持久保持。
每一次SQL Server重新啟動時,tempdb會從model數(shù)據(jù)庫復制。它從model數(shù)據(jù)庫中繼承了某些數(shù)據(jù)庫配置選項,如ALLOW_SNAPSHOT_ISOLATION。
tempdb中只有一個數(shù)據(jù)文件組和一個日志文件組。您可以配置文件的大小。當啟用自動增長(這是默認的),文件將增長到磁盤卷已滿為止。當服務器重啟時,tempdb文件大小會重置為配置的大。J為8 MB)。自動增長是tempdb數(shù)據(jù)庫臨時(不同于其他類型的數(shù)據(jù)庫)空間。SQL服務器重新啟動時,重置tempdb數(shù)據(jù)庫。
用戶可以明確的在tempdb數(shù)據(jù)庫中創(chuàng)建和使用數(shù)據(jù)表。事務可以用于修改表中的數(shù)據(jù),事務可以回滾。然而,沒有必要重做它們,因為tempdb的內(nèi)容不會在重新啟動SQL Server中保持。由于事務日志不需要刷新,事務提交的速度比用戶數(shù)據(jù)庫更快。在用戶數(shù)據(jù)庫,事務具有ACID屬性,即原子性、并發(fā)性、隔離和持久性。而在tempdb數(shù)據(jù)庫中,事務將失去持久性屬性。
SQL Server在tempdb數(shù)據(jù)庫中存儲內(nèi)部對象,如一個查詢的中間結果。tempdb數(shù)據(jù)庫中大部分內(nèi)部運作不生成日志記錄,因為不需要回滾。因此,這些操作速度更快。
tempdb數(shù)據(jù)庫不允許自動收縮。數(shù)據(jù)庫的文件收縮和收縮的能力是有限的。這是因為許多SQL Server存儲在tempdb中隱藏的對象,不能通過收縮操作移動。
|