sql >> データベース >  >> RDS >> Sqlserver

SQLServerデータベースのCPU使用統計

    こんにちは、

    一般に、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);
    
    
    


    1. UTL_FILE.FREMOVE例:Oracleでファイルを削除する

    2. データベース内の1対1の関係とは何ですか?

    3. SQLServer2019でのtempdbの機能強化

    4. 単一のクエリを使用して複数のテーブル列の値を更新する