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

SQL Server 系統資料庫架構與運作原理深度解析

     編輯:關於SqlServer

DBA 與資料庫開發者必須理解 SQL Server 內建的五大系統資料庫,它們支撐整個引擎的啟動、配置、暫存、複寫、排程等核心功能。

master — 引擎的「大腦」

  • 記錄所有使用者資料庫的位置、檔案、啟動參數。
  • 儲存伺服器級配置(sp_configure)、連結伺服器、登入帳號、端點、憑證等。
  • 包含擴展預存程序(xp_cmdshell 等),提供 OS 層級互動能力。
  • 損毀即無法啟動 SQL Server,必須定期備份(建議每日完整備份 + 交易記錄備份)。
  • 災難恢復參考:重建 master 需啟動單用戶模式、還原備份、重建系統物件。

model — 使用者資料庫的「模板」

  • 新建資料庫(CREATE DATABASE)時,以 model 為藍本複製。
  • 可預置:通用預存程序、視圖、使用者、權限、資料庫選項(復原模式、自動收縮等)。
  • 修改 model 後,僅影響後續新建資料庫,現有資料庫不受影響。

tempdb — 暫存物件的「工作間」

  • 儲存:區域/全域暫存表(#t/##t)、暫存預存程序、資料表變數、資料表值函數結果集、游標工作表、版本存放區(快照隔離、線上索引重建、MARS)。
  • 每次 SQL Server 啟動時重建,基於 model 複製結構。
  • 效能關鍵:建議放置於獨立高速磁碟(SSD/NVMe)、預先配置足夠大小、啟用多資料檔(每 CPU 核心 1 檔,上限 8)、啟用瞬間檔案初始化。

distribution — 複寫的「中轉站」

  • 僅當伺服器設定為散發者時存在。
  • 儲存:快照、交易、合併複寫的中繼資料、歷史記錄、代理程式狀態。
  • 預設名稱 distribution,可自訂。

msdb — 排程與管理的「中樞」

  • SQL Server Agent 作業、排程、警示、操作員。
  • 備份/還原歷史(backupset、restorehistory)。
  • DTS/SSIS 套件儲存(sysdtspackages)。
  • Database Mail、Log Shipping、Policy-Based Management 相關資料。

實務建議

  • 雖不建議直接查詢系統表(sysobjects 等),但閱讀其定義與關係能深入理解引擎行為。
  • 定期備份 master、msdb、model(tempdb、distribution 視複寫狀態決定)。
  • 監控 tempdb 爭用(PAGELATCH、版本存放區大小),及時擴容或優化查詢。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved