SQL Server Dynamic Management Objects, DMOs (DMV, DMF)
2021-12-17
筆記 SQL Server 實用的 SQL Server Dynamic Management Objects, DMOs 用於資料庫管理、問題處理 Trouble Shooting 所使用。
說明
資料庫效能相關處理
⭐索引
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 的查詢 |