Microsoft SQL Server/System databases

維基教科書,自由的教學讀本

SQL Server每個伺服器實例都安裝了4個系統資料庫: master, tempdb, model, msdb. 提供了伺服器端配置元數據,工具配置和處理數據,創建和利用臨時對象的能力。

master[1][編輯]

master資料庫記錄SQL Server實例的伺服器範圍配置信息,包括所有登錄名和資料庫引擎配置默認值。master資料庫存儲元數據,包括對實例上所有其他資料庫的引用。此資料庫記錄 SQL Server 的初始化信息,如果master資料庫丟失、損壞或不可用,SQL Server實例將無法啟動。 在 SQL Server 2005 之前,所有系統對象都存儲在master資料庫中。 從 SQL Server 2005 開始,主資料庫通過引用只讀的「資源資料庫」的視圖、函數和存儲過程提供對系統對象的訪問。

tempdb[2][編輯]

tempdb資料庫被視為所有連接和所有用戶都可以訪問的「全局資源」。tempdb資料庫保存用戶創建的臨時資料庫對象,例如臨時表和臨時存儲過程。資料庫引擎也大量使用該資料庫來序列化中間結果並保存在處理期間生成的其他臨時數據和對象。Tempdb在SQL Server服務首次啟動時重新創建。由於系統大量使用tempdb,因此許多系統範圍的性能優化必然集中在使tempdb儘可能高效上。

model[3][編輯]

模型資料庫是在伺服器實例上所有新創建的資料庫的模板。創建資料庫時,它被初始化為模型資料庫的副本,然後修改為創建時指定的正確大小和設置。模型資料庫中的任何對象都會自動複製到新資料庫中。出於這個原因,一些資料庫管理員(DBA)在模型資料庫中創建他們希望在所有新創建的資料庫中存在的函數或其他資料庫對象。

在SQL Server 2005之前,資料庫初始化過程需要在創建資料庫時分配和清除(「零填充」)所有頁面。從SQL Server 2005開始,使用「即時初始化功能」通過在分配新數據頁時跳過零填充來提高性能。

每次啟動SQL Server時,都會從模型資料庫的副本重新創建tempdb資料庫,因此模型資料庫必須始終存在於SQL Server系統上。

msdb[4][編輯]

msdb 資料庫是一個系統資料庫,用於存儲SQL Server特性和應用程式的配置和處理數據以及元數據,包括SQL Server代理(作業計劃和警報)、SQL Server 集成服務(ETL 包)、資料庫郵件和服務代理。

用途[編輯]

獲取所有資料庫及其好用的存儲尺寸:

EXECUTE master.sys.sp_MSforeachdb 'USE [?]; EXEC sp_spaceused'

參考文獻[編輯]

  1. master database (Microsoft Docs)
  2. tempdb database (Microsoft Docs)
  3. model database (Microsoft Docs)
  4. msdb database (Microsoft Docs)