0

我想使用 SQL Query 或 Powershell 脚本从 Portal 获取“CPU used (Max)”和“CPU used (Avg)”。我使用了“sys.elastic_pool_resource_stats”,但没有提及细节。

有没有办法做到这一点,使用 SQL 查询。

下面是示例屏幕截图。从下面的屏幕截图中,我想得到 CPU 使用(最大):1.94 和 CPU 使用(平均):0.07。此数据是最近 1 个月的数据。

在此处输入图像描述

4

1 回答 1

0

有许多第三方工具或社区脚本(使用 T-SQL 或 PowerShell)可以让您监控数据库的性能。他们中的大多数使用 CPU 利用率作为基本指标之一。例如,您可以使用PsDba 工具 PowerShell 库中的Get-DbaCpuUsage命令来使用以下 PowerShell 监控 CPU 使用情况:

Get-DbaCpuUsage -SqlInstance sql2017

您还可以使用自定义脚本和库,例如Query Performance Insights库,可让您查询 CPU 使用情况:

select *
from qpi.cpu_usage;

此库还使您能够获取有关每个查询存储间隔的历史 CPU 使用情况的信息(仅在 SQL Server 2016+ 和 Azure SQL 中可用):

select start_time, execution_type_desc,
    tps =  sum(count_executions)/ min(interval_mi) /60,
    [cpu %] = ROUND(100 * sum(count_executions*cpu_time_s)/ min(interval_mi) /60 /(SELECT top 1 cpu_count FROM sys.os_sys_info)/*cores*/,1)
from qpi.db_query_plan_exec_stats_history
group by start_time, execution_type_desc
order by start_time desc

此外,此库使您能够轻松找到消耗大部分 CPU 时间的热门查询或查询计划:

select top 10 *
from qpi.db_query_exec_stats_history
order by cpu_time_ms desc;

select top 10 *
from qpi.db_query_plan_exec_stats_history
order by cpu_time_ms desc

请参阅此 Microsoft 博客:监控 SQL Server 和 Azure SQL 上的 CPU 使用情况

HTH。

于 2021-01-27T02:13:50.377 回答