如何解决获取 Azure SQL 弹性池中的 CPU 使用量 (Max) 和 CPU 使用量 (Avg)
我想使用 SQL 查询或 Powershell 脚本从门户获取“CPU used (Max)”和“CPU used (Avg)”。我使用了“sys.elastic_pool_resource_stats”,但没有提到细节。
有没有办法做到这一点,使用 SQL 查询。
以下是示例屏幕截图。从下面的屏幕截图中,我想获得 CPU 使用率(最大):1.94 和 CPU 使用率(平均):0.07。这是过去 1 个月的数据。
解决方法
有许多第三方工具或社区脚本(使用 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 博客:Monitor CPU usage on SQL Server and Azure SQL。
HTH。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。