首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >性能监测

性能监测
EN

Database Administration用户
提问于 2021-06-30 22:38:41
回答 1查看 135关注 0票数 -1

我需要获得性能指标,比如sql server中使用sql查询的CPU使用情况,并将其存储在历史表中,然后继续添加旧记录。而维护当前数据的当前表-- .How --我可以这样做,因为我目前正在处理azure,所以不能使用server作业代理来调度。请给我提供另一个脚本

EN

回答 1

Database Administration用户

发布于 2021-07-02 01:28:27

你在这里有两个选择:

我知道这不允许您将它保存在表中,但是您可以在任何时候访问30天的CPU使用时间,而不需要做任何事情。这是通过预科。

要从下面提到的两个系统动态管理视图中收集数据,可以使用以下解决方案之一在设置间隔(类似于SQL Agent作业)设置集合。如果您搜索Microsoft文档,将详细记录这些解决方案中的每一个。

  • 带有windows的Powershell (或任何其他调度程序)
  • Azure自动化
  • Azure函数应用程序
  • 弹性工作

sys.restore_统计数据返回Azure数据库的CPU使用情况和存储数据。数据在五分钟内收集和汇总。对于每个用户数据库,每5分钟报告窗口就有一行,其中资源消耗发生了变化。返回的数据包括CPU使用、存储大小更改和数据库SKU修改。没有更改的空闲数据库不可能每隔5分钟就有行一次.历史数据保存约14天。

代码语言:javascript
复制
SELECT
  start_time, 
  end_time, 
  avg_cpu_percent 
from sys.resource_stats;

sys.dm_数据库_资源_统计数据返回Azure SQL数据库的CPU、I/O和内存消耗。即使数据库中没有活动,每15秒也存在一行。历史数据的维护时间约为一个小时。

代码语言:javascript
复制
SELECT 
  end_time,
  avg_cpu_percent
FROM sys.dm_db_resource_stats;

您可以设置Azure诊断,这将将您的度量标准和日志保存到三个目的地之一。我个人使用日志分析工作区。然后,您可以使用Kusto查询语言查询CPU的使用情况。一个示例查询将是:

代码语言:javascript
复制
// Avg CPU usage 
// Avg CPU usage in the last hour by resource name. 
//consistently high averages could indicate a customer needs to move to a larger SKU
AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL" // /DATABASES
| where TimeGenerated >= ago(60min)
| where MetricName in ('cpu_percent') 
| parse _ResourceId with * "/microsoft.sql/servers/" Resource  // subtract Resource name for _ResourceId
| summarize CPU_Maximum_last15mins = max(Maximum), CPU_Minimum_last15mins = min(Minimum), CPU_Average_last15mins = avg(Average) by Resource , MetricName
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/295080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档