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);