Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

CPU por Database

Eae Pessoal.

Tudo certo por aí?

Nesse post estou disponibilizando um script bem simples, para verificar quanto cada Banco de Dados está consumindo de CPU.

Trata-se de um script bem útil para o inicio de um troubleshooting associado a casos de lentidão.

WITH CPU_Databases
AS (
	SELECT DatabaseID
		,DB_NAME(DatabaseID) AS [DatabaseName]
		,SUM(total_worker_time) AS [CPU_Time_Ms]
	FROM sys.dm_exec_query_stats AS qs
	CROSS APPLY (
		SELECT CONVERT(INT, value) AS [DatabaseID]
		FROM sys.dm_exec_plan_attributes(qs.plan_handle)
		WHERE attribute = N'dbid'
		) AS F_DB
	GROUP BY DatabaseID
	)
SELECT ROW_NUMBER() OVER (
		ORDER BY [CPU_Time_Ms] DESC
		) AS [Id]
	,DatabaseName
	,[CPU_Time_Ms]
	,CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) OVER () * 100.0 AS DECIMAL(5, 2)) AS [CPU%]
FROM CPU_Databases
WHERE DatabaseID > 4 -- system databases
	AND DatabaseID <> 32767 -- ResourceDB
ORDER BY id
OPTION (RECOMPILE);

 

Close Bitnami banner
Bitnami