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

Redshift中sys_query_history与stl_querytext关联查询方法咨询

Redshift中sys_query_history与stl_querytext的正确关联方式

要精准关联这两张表,核心是使用**sys_query_history.query_id和stl_querytext.queryid**作为关联键,这是Redshift为每个查询分配的唯一标识,能确保一对一匹配。之前用事务ID或会话ID关联的问题在于,同一事务/会话下可执行多个查询,无法定位到具体某一条查询。

示例查询语句

SELECT
    sqh.status,
    sqh.result_cache_hit,
    sqh.start_time,
    sqh.end_time,
    sqh.error_message,
    -- 拼接stl_querytext中拆分的SQL片段,得到完整查询文本
    LISTAGG(sqt.querytext, '') WITHIN GROUP (ORDER BY sqt.sequence) AS full_query_text
FROM sys_query_history sqh
INNER JOIN stl_querytext sqt 
    ON sqh.query_id = sqt.queryid
-- 可根据需求添加时间范围等过滤条件
WHERE sqh.start_time >= CURRENT_DATE - 7
GROUP BY 
    sqh.query_id,
    sqh.status,
    sqh.result_cache_hit,
    sqh.start_time,
    sqh.end_time,
    sqh.error_message
ORDER BY sqh.start_time DESC;

关键说明

  • 关联逻辑:query_id(sys_query_history)和queryid(stl_querytext)是Redshift为每个查询生成的唯一标识,直接关联就能精准匹配查询的执行元数据和对应的SQL文本。
  • 完整SQL拼接:stl_querytext会将过长的SQL拆分成多条记录(每条对应一个片段),sequence字段标记了片段的顺序,使用LISTAGG按顺序拼接即可得到完整的查询语句。
  • 过滤与分组:通过GROUP BY聚合同一query_id下的SQL片段,同时保留sys_query_history中的核心字段;可根据需求添加过滤条件缩小查询范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:05:03