每个数据库的实际 CPU 使用率



我想测量特定数据库的CPU使用率的当前情况,我编写了以下查询以获取此信息。但是,我无法确定此查询的准确性。

DECLARE @Fm INT;
DECLARE @FTime DATETIME;
SELECT @FTime = getdate(),@Fm = SUM(dmqs.total_worker_time) 
FROM sys.dm_exec_query_stats dmqs 
CROSS APPLY 
(SELECT 
CONVERT(INT, value) AS [DatabaseID] 
FROM sys.dm_exec_plan_attributes(dmqs.plan_handle)
WHERE attribute = N'dbid') dmpa
where DatabaseID=7
GROUP BY dmpa.DatabaseID
WAITFOR DELAY '00:00:01'
SELECT CAST((SUM(dmqs.total_worker_time) - @Fm)* 1.0  / SUM(dmqs.total_worker_time)  * 100 AS DECIMAL(5, 2))
FROM sys.dm_exec_query_stats dmqs 
CROSS APPLY 
(SELECT 
CONVERT(INT, value) AS [DatabaseID] 
FROM sys.dm_exec_plan_attributes(dmqs.plan_handle)
WHERE attribute = N'dbid') dmpa
where DatabaseID=7
GROUP BY dmpa.DatabaseID

看看 Glen Berry 的诊断查询。 他有一些与 CPU 相关的问题,包括实例中每个数据库的 CPU 使用率细分。 https://www.sqlskills.com/blogs/glenn/category/dmv-queries/

最新更新