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

SQL性能查询如何聚合相同TextData 求和CPU、Duration等资源指标

实现方案

你需要使用GROUP BY子句按TextData分组,配合聚合函数SUM()计算各指标的总和,参考SQL如下:

方案1:仅按TextData聚合(仅统计SQL语句的整体消耗)

SELECT TOP 40 
    TextData,
    SUM(CPU) AS 总CPU,
    SUM(Duration) AS 总Duration,
    SUM(Reads) AS 总Reads,
    SUM(Writes) AS 总Writes,
    COUNT(*) AS 执行次数 -- 额外增加执行次数字段,方便排查高频执行的SQL
FROM dbo.PerformanceTable 
WHERE Duration > 10000
  AND TextData IS NOT NULL -- 过滤掉无SQL文本的记录,按需开启
GROUP BY TextData
ORDER BY 总Duration DESC -- 可按需修改排序字段,比如按总CPU、总Reads排序

方案2:按多维度聚合(需要区分不同主机、数据库、应用、登录名的消耗时使用)

如果需要同时保留HostName、DatabaseName等维度的信息,需要把这些非聚合字段全部加入GROUP BY子句:

SELECT TOP 40 
    HostName, 
    DatabaseName, 
    ApplicationName,
    LoginName,
    TextData,
    SUM(CPU) AS 总CPU,
    SUM(Duration) AS 总Duration,
    SUM(Reads) AS 总Reads,
    SUM(Writes) AS 总Writes,
    COUNT(*) AS 执行次数
FROM dbo.PerformanceTable 
WHERE Duration > 10000
  AND TextData IS NOT NULL
GROUP BY HostName, DatabaseName, ApplicationName, LoginName, TextData
ORDER BY 总Duration DESC

补充说明

  • 可根据实际排查需求修改ORDER BY的排序字段,比如要找IO最高的SQL就改成ORDER BY 总Reads DESC
  • 不需要的维度可以直接从SELECT和GROUP BY中移除
  • 不需要TOP 40限制的话,直接去掉TOP 40关键字即可

内容的提问来源于stack exchange,提问作者dan Kalio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:21:00