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

Snowflake查询历史无法捕获运行中无限循环查询的问题

Snowflake无法捕获运行中查询的问题解决

问题根源

  • INFORMATION_SCHEMA.QUERY_HISTORY_BY_SESSION() 是会话级函数,仅返回当前会话内的查询记录。如果你的无限循环查询是在另一个会话(新窗口、新工作表)执行的,这个函数根本看不到。
  • 就算是同一会话,Snowflake同一时间只能执行一个查询——当你运行查询历史语句时,之前的无限循环查询会被中断,自然不会显示为RUNNING状态。

解决步骤

1. 切换到全局查询历史视图/函数

要查看所有会话的运行中查询,改用全局级的查询历史工具:

方式一:使用ACCOUNT_USAGE视图(需账户级权限)

SELECT QUERY_ID, QUERY_TEXT, EXECUTION_STATUS, START_TIME
FROM ACCOUNT_USAGE.QUERY_HISTORY
WHERE LOWER(EXECUTION_STATUS) = 'running'
AND DATEDIFF(HOUR, START_TIME, CURRENT_TIMESTAMP()) >= 1;

方式二:使用全局QUERY_HISTORY函数

SELECT QUERY_ID, QUERY_TEXT, EXECUTION_STATUS, START_TIME
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY())
WHERE LOWER(EXECUTION_STATUS) = 'running'
AND DATEDIFF(HOUR, START_TIME, CURRENT_TIMESTAMP()) >= 1;

2. 验证会话隔离

执行无限循环查询时,必须在独立会话(比如新的工作表标签、另一个客户端连接)中运行,再回到当前会话执行查询历史语句——同一会话无法同时运行两个查询,之前的循环会被中断。

3. 确认权限

  • 使用ACCOUNT_USAGE.QUERY_HISTORY需要账户授予MONITOR USAGE角色或直接的SELECT权限。
  • INFORMATION_SCHEMA.QUERY_HISTORY()默认仅能查看当前用户的所有会话查询,要查看其他用户的查询,需拥有MONITOR权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 14:46:01