sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server-databaser CPU-brugsstatistik

Hej,

Generelt er der mange databaser på SQL Server Instance. At køre databaser i samme instans er meget vigtigt for SQL Server-licens og konsolidering.

Når mange databaser kører i samme SQL Server Instance, er ressourceforbrug af databaser meget kritisk.

Hvis en database bruger masser af CPU-ressourcer, bør vi overvåge databasen, og hvorfor den database bruger mere CPU-ressource end andre.

Vi kan lære, at alle databaser CPU-ressourcer bruger med følgende script.

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



  1. Kan jeg sammenkæde flere MySQL-rækker i ét felt?

  2. Hvordan kontrollerer man den endelige SQL-parametriserede forespørgsel i PHP med PDO?

  3. 10 Microsoft Access Navigationsrude Tastaturgenveje

  4. Hvad er en forespørgselsudligger, og hvordan rettes den