Sql-Server

T-SQL 查找記憶體、CPU 和 IO 使用率

  • August 6, 2021

我想在一周或一個月內確定 SQL Server 2005 及更高版本伺服器上的數據庫的資源(CPU、記憶體和 IO)使用情況。有人可以幫忙嗎?

您可以使用幾個選項:

您可以使用使用動態管理視圖 (DMV),例如 sys.dm_exec_sessions、sys.dm_os_performance_counters、sys.dm_os_memory_brokers、sys.dm_os_memory_nodes、sys.dm_exec_procedure_stats、sys._dm_os_sys_info、sys.dm_exec_requests、sys.dm_exec_requests 等等,具體取決於關於您實際想要監控的內容。

由於 SQL Server 不會將性能指標值儲存在存檔表中,因此您可以按計劃查詢視圖並將結果插入到將用作儲存庫的表中。然後您可以輕鬆地查詢和分析記錄。

另一個問題是 - 要監控哪些計數器。

對於處理器使用情況:處理器:% 處理器時間,處理器隊列長度

對於記憶體、可用記憶體字節、總伺服器記憶體和目標伺服器記憶體

您可以在此處找到推薦用於監視的計數器的完整列表:性能監視器計數器

請注意,當您使用 dm_os_performance_counters 視圖時,必須了解 counter_type。有五個不同的值,每個值類型的目前值計算方式不同。你在這裡有例子和解釋:sys.dm_os_performance_counters

另一種選擇是使用第三方工具來收集您要監控的指標,將它們儲存在儲存庫中,並顯示您選擇的時間段內的歷史數據。由於歷史數據儲存在 SQL 表中,您還可以輕鬆地自己查詢數據並創建報表。

這樣的工具是ApexSQL Monitor,它內置了最後一天、一周和一個月的圖表。它將很快提供報告。

在此處輸入圖像描述

免責聲明:我作為支持工程師在 ApexSQL 工作

引用自:https://dba.stackexchange.com/questions/65937