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


  1. 說明
    1. 資料庫效能相關處理
    2. 綜合瀏覽
    3. Server Levels
    4. Database Levels
    5. Query Store
  2. 相關連結

筆記 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 學習資源筆記