こんにちは、
一般に、SQLServerインスタンスには多くのデータベースがあります。データベースを同じインスタンスで実行することは、SQLServerのライセンスと統合にとって非常に重要です。
多くのデータベースが同じSQLServerインスタンスで実行されている場合、データベースのリソース使用量は非常に重要です。
データベースが大量のCPUリソースを使用している場合は、データベースと、そのデータベースが他のデータベースよりも多くのCPUリソースを消費する理由を監視する必要があります。
次のスクリプトを使用して、すべてのデータベースのCPUリソースの使用状況を確認できます。
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);