SQL Server Dynamic Management Objects, DMOs (DMV, DMF)

2021-12-17

筆記 SQL Server 實用的 SQL Server Dynamic Management Objects, DMOs 用於資料庫管理、問題處理 Trouble Shooting 所使用。

SQL Server Logo

說明

資料庫效能相關處理

⭐索引

DMOs 說明
sys.dm_db_missing_index_details 顯示所有資料庫推薦建立的遺漏索引 (Missing Indexes)

⭐統計資訊

DMOs 說明
sys.objects 取的資料庫物件資訊
sys.stats 從物件資訊取得統計資訊
sys.dm_db_stats_properties 檢視各種物件統計資訊,包含最後更新日期

⭐執行計畫

DMOs 說明
sys.dm_exec_requests 查詢目前進行中 Query 所使用的執行計畫
sys.dm_exec_cached_plans 查詢已快取的實行計畫
sys.dm_exec_query_profiles 藉由輸入 SQL Handle 查詢執行計畫的內容

⭐等待時間

DMOs 說明
sys.dm_os_wait_stats 伺服器重啟後所累積的各項等待時間
sys.dm_exec_session_wait_stats 進行中的查詢所累積的各項等待時間

常見的等待類型

  • RESOURCE_SEMAPHORE
  • LCK_M_X
  • PAGEIOLATCH_SH
  • SOS_SCHEDULER_YIELD
  • CXPACKET
  • PAGEIOLATCH_UP

綜合瀏覽

DMOs 說明
sys.dm_server_services 查詢資料庫伺服器下服務的啟動資訊
sys.dm_db_file_space_usage 顯示特定資料庫的檔案資訊,包含檔案配置大小及使用大小
sys.dm_db_log_space_usage 顯示特定資料庫的交易紀錄資訊,包含檔案配置大小及使用大小
sys.dm_db_index_physical_stats 以資料表或檢視為單位,查詢所引的大小及碎片化程度
sys.dm_db_index_usage_stats 顯示所有的索引使用資訊
sys.dm_db_partition_stats 顯示 Partition 的資料頁以及資料列資訊 (Data Pages & Rows)
sys.dm_db_missing_index_details 顯示所有資料庫推薦建立的遺漏索引 (Missing Indexes)
sys.dm_db_missing_index_group_stats 顯示遺漏索引所相關的查詢使用資訊
sys.dm_db_missing_index_groups 多對多關聯,index_handle 對應 index_details ; index_group_handle 對應 index_group_stats 的 group_handle
sys.dm_exec_requests 查詢執行中的 Request 資訊
sys.dm_exec_query_plan 可以使用 exec_requests 查詢到的 sql_handle 還原為執行計畫資訊 (Execution Plan)
sys.dm_exec_sql_text 可以使用 exec_requests 查詢到的 sql_handle 還原為原始查詢 TSQL
sys.dm_exec_query_stats 查詢執行計畫的彙整統計資訊
sys.dm_exec_sessions 查詢目前的 Sessions
sys.dm_tran_locks 查詢目前的 Locks 以及 Block 的資訊
sys.dm_os.waiting_tasks 查詢封鎖及造成封鎖問題的 Process

索引與物件的關聯

索引的使用情形

索引包含的欄位資訊

索引的遺失建立建議

Server Levels

DMOs 說明
sys.databases 查詢所有的資料庫資訊
sys.master_files 查詢所有資料庫的檔案資訊
sys.all_objects 顯示所有的資料庫物件 (Database Objects)
sys.all_columns 顯示所有的資料欄資訊 (Columns)
sys.all_views 顯示所有的檢視資訊 (View)

Database Levels

DMOs 說明
sys.objects 顯示所有的資料庫物件,包含 Table, StoredProcedures, View, Constraint 等
sys.tables 顯示所有的資料表 (Table)
sys.indexes 顯示所有的 Index 及 Heap
sys.index_columns 顯示索引所擁有的資料欄 (Columns)
sys.columns 顯示所有的資料欄資訊 (Columns)
sys.types 顯示所有的資料型別資訊 (Data Types)

Query Store

DMOs 說明
sys.query_store_plan 檢視儲存在 Query Store 的執行計畫
sys.query_store_query 檢視儲存在 Query Store 的查詢

相關連結

SQL Server Integrated Service 初探

SQL Server 閃電般快速查詢指南⚡

SQL Server 周邊工具彙整筆記

SQL Server 學習資源筆記