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

如何基于Process ID值关联查询Process Working Set的RawValue

解决思路与SQL实现

嘿,你的需求本质是要关联同一条InstanceName下的两条监控记录——先找到对应进程ID的那条记录,再拉取它的内存工作集数据。这里给你两种靠谱的实现方式:

方法一:使用子查询定位InstanceName

这种方式逻辑直观,先通过子查询找到目标进程对应的InstanceName,再用它过滤出工作集数据:

SELECT RawValue AS ProcessWorkingSet
FROM [dbo].[LoadTest]
WHERE LoadTestRunId = '11180'
  AND CategoryName = 'Process'
  AND CounterName = 'Process Working Set'
  AND InstanceName = (
      SELECT InstanceName
      FROM [dbo].[LoadTest]
      WHERE LoadTestRunId = '11180'
        AND CategoryName = 'Process'
        AND CounterName = 'ID Process'
        AND RawValue = '2068'
  );

注意:如果ID Process+RawValue的组合可能返回多个InstanceName(比如同一运行ID下有多个相同进程ID的实例),可以把子查询改成IN而不是=,或者根据实际情况加上TOP 1确保唯一性。

方法二:使用自连接(更适合复杂关联场景)

因为所有数据都在同一张表里,我们可以把表自己和自己做连接,直接关联两条记录的关系:

SELECT t2.RawValue AS ProcessWorkingSet
FROM [dbo].[LoadTest] t1
JOIN [dbo].[LoadTest] t2
  ON t1.LoadTestRunId = t2.LoadTestRunId
  AND t1.CategoryName = t2.CategoryName
  AND t1.InstanceName = t2.InstanceName
WHERE t1.LoadTestRunId = '11180'
  AND t1.CategoryName = 'Process'
  AND t1.CounterName = 'ID Process'
  AND t1.RawValue = '2068'
  AND t2.CounterName = 'Process Working Set';

这种方式的优势是如果后续需要扩展查询更多关联指标(比如CPU使用率),只需要继续添加JOIN条件即可,扩展性更强。

另外,你的原始查询只过滤了运行ID、类别和实例前缀,缺少了对CounterName的精准过滤以及关键的关联逻辑,上面两种方法都帮你补上了这些部分,直接运行就能得到你要的9310208啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:02:12