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

如何为多个查询获取GET_QUERY_OPERATOR_STATS()统计信息?

获取多个查询的算子统计信息方法

要批量获取多个查询的算子统计,可以结合Snowflake的查询历史视图和GET_QUERY_OPERATOR_STATS()函数,通过以下方式实现:

方法一:使用LATERAL JOIN关联查询历史与算子统计

通过查询历史视图筛选目标查询,再用LATERAL JOIN调用函数逐个获取统计:

SELECT
    q.QUERY_ID,
    q.QUERY_TEXT,
    q.START_TIME,
    ops.*
FROM
    INFORMATION_SCHEMA.QUERY_HISTORY q,
    LATERAL GET_QUERY_OPERATOR_STATS(q.QUERY_ID) ops
WHERE
    q.START_TIME >= DATEADD(HOUR, -24, CURRENT_TIMESTAMP()) -- 筛选最近24小时的查询
    AND q.QUERY_TYPE = 'SELECT' -- 可选:按查询类型过滤
ORDER BY
    q.START_TIME DESC;

方法二:横向展开算子统计字段

如果需要提取算子统计的特定字段(比如算子类型、处理行数),可以在SELECT中直接调用函数并转换数据类型:

SELECT
    QUERY_ID,
    QUERY_TEXT,
    (GET_QUERY_OPERATOR_STATS(QUERY_ID):operator_type)::STRING AS OPERATOR_TYPE,
    (GET_QUERY_OPERATOR_STATS(QUERY_ID):rows_produced)::NUMBER AS ROWS_PRODUCED
FROM
    INFORMATION_SCHEMA.QUERY_HISTORY
WHERE
    START_TIME >= DATEADD(DAY, -7, CURRENT_TIMESTAMP()) -- 筛选最近7天的查询
LIMIT 100;

注意事项

  • 确保执行查询的角色拥有MONITOR权限或能访问查询历史视图的权限
  • GET_QUERY_OPERATOR_STATS()返回JSON格式数据,需用::语法转换为对应数据类型
  • 可根据需求选择不同的查询历史视图(如QUERY_HISTORY_BY_SESSION、QUERY_HISTORY_BY_WAREHOUSE)精准筛选目标查询

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:05:17