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

SQL Server 2005 告別系統表:目錄視圖與 DMV 的元數據新紀元

     編輯:關於SqlServer

SQL Server 2000 時代,查詢索引列排序需連接 sysindexes、sysindexkeys、syscolumns 等系統表,還要用 INDEXKEY_PROPERTY 等非文檔化函數,極其痛苦。SQL Server 2005 徹底重寫了元數據架構:

系統表去哪了?

  • 真實數據存於隱藏的「資源」數據庫,僅服務器內部可訪問
  • 舊系統表以「兼容視圖」形式保留(如 sysobjects → sys.sysobjects),保證向下兼容
  • 新體系:200+ 目錄視圖 + 動態管理視圖 (DMV) 替代原 ~50 張系統表

目錄視圖:靜態元數據的結構化呈現

  • 命名規範:sys.all_*(含系統/用戶對象)、sys.*(僅用戶對象)
  • is_ms_shipped = 1 識別系統對象
  • 自解釋列名:sys.tables、sys.indexes、sys.index_columns、sys.parameters 等
  • 查詢索引列排序現只需:SELECT * FROM sys.index_columns WHERE object_id = OBJECT_ID('t'),is_descending_key 列直接給出

DMV:運行時狀態的實時窗口

  • 前綴 dm_*:dm_exec_sessions、dm_exec_requests、dm_db_index_usage_stats、dm_os_wait_stats 等
  • 反映會話、鎖、緩存、I/O、調度器等動態狀態
  • 取代 DBCC、sp_who、sp_lock 等舊命令

安全與發現

  • 所有視圖歸屬 sys schema,受擴展的 Schema 安全模型保護
  • SELECT name FROM sys.all_views WHERE is_ms_shipped = 1 可獲完整視圖清單
  • Management Studio 物件瀏覽器「系統視圖」節點直觀導航

新元數據體系將「逆向工程系統表」變為「查閱文檔化視圖」,是 DBA 開發效率的質飛躍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved