Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Statistiques d'utilisation du processeur des bases de données SQL Server

Bonjour,

Généralement Il existe de nombreuses bases de données sur SQL Server Instance. L'exécution de bases de données dans la même instance est très importante pour la licence et la consolidation de SQL Server.

Lorsque de nombreuses bases de données s'exécutent dans la même instance SQL Server, l'utilisation des ressources des bases de données est très critique.

Si une base de données utilise beaucoup de ressources CPU, nous devons surveiller la base de données et pourquoi cette base de données consomme plus de ressources CPU que les autres.

Nous pouvons apprendre que toutes les ressources CPU des bases de données utilisent le script suivant.

WITH DB_CPU_STATS_ON_INSTANCE
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 [row_num],
DatabaseName, [CPU_Time_Ms], 
CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPUPercent]
FROM DB_CPU_STATS_ON_INSTANCE
WHERE DatabaseID > 4 
AND DatabaseID <> 32767 
ORDER BY row_num OPTION (RECOMPILE);