You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Log Analytics查询SQL数据库存储指标时出现重复条目问题咨询

Azure Log Analytics查询SQL数据库存储指标时出现重复条目问题咨询

嗨,我来帮你拆解下这个问题的原因,以及对应的解决办法~

为什么会出现重复条目?

你当前的查询里用了 summarize MaxMB = max(AverageMB) by bin(TimeGenerated, 1h), Resource,这里的核心是按1小时时间桶和数据库(Resource)共同分组。

举个例子:假设现在是上午10:30,你的查询范围是过去1小时(9:30-10:30),bin(TimeGenerated,1h) 会把这段时间分成两个时间桶:

  • 9:00-10:00(包含9:30-10:00的数据)
  • 10:00-11:00(包含10:00-10:30的数据)

如果某个数据库在这两个时间桶里都有存储指标数据,就会被统计两次,自然就出现了同一个数据库的多条条目。

怎么解决重复问题?

根据你的需求,如果你只想得到过去1小时内每个数据库的最大存储值,可以去掉时间桶的分组,或者用arg_max来获取最新时间点的最大值,这里给你两个方案:

方案1:只按数据库分组,取过去1小时内的最大值

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL" and Resource != "MASTER"
| where TimeGenerated > ago(1h)
| where MetricName == "storage"
| extend AverageMB = Average / 1000000
| summarize MaxMB = max(AverageMB) by Resource
| project Resource, MaxMB

方案2:保留时间维度,但只取每个数据库的最新时间桶数据

如果你还是想保留时间信息,但不想重复显示同一个数据库,可以用arg_max来获取每个数据库对应的最新时间点的最大值:

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL" and Resource != "MASTER"
| where TimeGenerated > ago(1h)
| where MetricName == "storage"
| extend AverageMB = Average / 1000000
| summarize MaxMB = max(AverageMB), LatestTime = max(TimeGenerated) by Resource
| project LatestTime, Resource, MaxMB

或者如果你确实需要按小时分桶,但只想看完整的小时数据,可以调整时间范围,比如取过去整1小时的数据:

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL" and Resource != "MASTER"
| where TimeGenerated >= startofhour(ago(1h)) and TimeGenerated < startofhour(now())
| where MetricName == "storage"
| extend AverageMB = Average / 1000000
| summarize MaxMB = max(AverageMB) by bin(TimeGenerated, 1h), Resource
| project TimeGenerated, Resource, MaxMB

备注:内容来源于stack exchange,提问作者Francesco Mantovani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:10:30