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

如何获取Snowflake节点执行时间?替代Snowsight UI的实用方案

获取Snowflake查询节点执行时间的替代方案

有两种比Snowsight UI更灵活易用的方式来获取查询节点的执行时间:

1. 利用QUERY_HISTORY视图解析剖面数据

Snowflake的ACCOUNT_USAGE.QUERY_HISTORY或INFORMATION_SCHEMA.QUERY_HISTORY视图包含QUERY_PROFILE_DATA字段,这个JSON字段存储了完整的查询剖面信息,包括每个节点的执行时间。你可以通过SQL解析该字段,按需提取数据:

SELECT
    qh.QUERY_ID,
    TRIM(qh.QUERY_TEXT, '\n') AS QUERY_TEXT,
    qpd.value:node_id::INT AS NODE_ID,
    qpd.value:node_type::STRING AS NODE_TYPE,
    qpd.value:execution_time_ms::INT AS EXECUTION_TIME_MS
FROM
    ACCOUNT_USAGE.QUERY_HISTORY qh,
    LATERAL FLATTEN(input => qh.QUERY_PROFILE_DATA:plan_nodes) qpd
WHERE
    qh.QUERY_ID = 'abc123xyz' -- 替换为你的查询ID
ORDER BY
    NODE_ID;

注意:ACCOUNT_USAGE.QUERY_HISTORY的数据有15-45分钟的延迟,如果需要实时数据,改用INFORMATION_SCHEMA.QUERY_HISTORY。

2. 使用SYSTEM$QUERY_PROFILE函数

这个函数可以直接针对特定查询ID返回实时的查询剖面数据,包含节点执行时间等详细信息,适合快速查看最新完成的查询:

SELECT
    qpd.value:node_id::INT AS NODE_ID,
    qpd.value:node_type::STRING AS NODE_TYPE,
    qpd.value:execution_time_ms::INT AS EXECUTION_TIME_MS
FROM
    TABLE(SYSTEM$QUERY_PROFILE('abc123xyz')) qp, -- 替换为你的查询ID
    LATERAL FLATTEN(input => qp.PROFILE_DATA:plan_nodes) qpd
ORDER BY
    NODE_ID;

这两种方式的优势在于:可以通过SQL自定义筛选条件、排序规则,还能批量导出数据或整合到自动化监控脚本中,比UI手动查看更高效,尤其适合批量分析多个查询的执行性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:32:37