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

Redshift中无法查询CREATE OR REPLACE VIEW执行记录及时长问题求助

Redshift查不到CREATE OR REPLACE VIEW执行记录?试试这些方案

问题根源与解决办法

1. 换查系统表STL_DDLTEXT

Redshift中,CREATE/REPLACE VIEW这类DDL语句的执行记录大多存储在STL_DDLTEXT表,而非STL_QUERY。直接查询这张表:

select database, ddltext, starttime, endtime, datediff(seconds, starttime, endtime) as duration
from STL_DDLTEXT
where database = 'mydb'
  and ddltext like '%CREATE OR REPLACE VIEW%'
limit 10;

2. 语句过长被截断?关联STL_QUERYTEXT

如果视图定义语句较长,STL_QUERY的querytxt字段(默认4000字符)会被截断,导致LIKE匹配失效。关联STL_QUERYTEXT获取完整语句:

select q.database, qt.querytxt, q.starttime, q.endtime, datediff(seconds, q.starttime, q.endtime) as duration
from STL_QUERY q
join STL_QUERYTEXT qt on q.queryid = qt.queryid
where q.database = 'mydb'
  and qt.querytxt like '%CREATE OR REPLACE VIEW%'
limit 10;

3. 权限不足?换超级用户或申请权限

当前查询账号可能没有系统表的访问权限,可以切换超级用户账号执行查询,或联系管理员开通SELECT ON STL_QUERY、SELECT ON STL_DDLTEXT等权限。

4. 历史记录被清理?缩小时间范围

Redshift系统表的历史数据会定期清理,若语句执行时间较早,可能已被删除。添加时间过滤条件缩小查询范围:

select database, querytxt, starttime, endtime, datediff(seconds, starttime, endtime) as duration
from STL_QUERY
where database = 'mydb'
  and querytxt like '%CREATE OR REPLACE VIEW%'
  and starttime >= current_date - interval '7 days' -- 仅查询近7天的记录
limit 10;

分析执行时长稳定性的方法

获取到记录后,按语句分组统计即可看出执行时长的波动情况:

select 
  ddltext,
  count(*) as 执行次数,
  avg(datediff(seconds, starttime, endtime)) as 平均时长,
  max(datediff(seconds, starttime, endtime)) as 最长时长,
  min(datediff(seconds, starttime, endtime)) as 最短时长,
  stddev(datediff(seconds, starttime, endtime)) as 时长标准差
from STL_DDLTEXT
where database = 'mydb'
  and ddltext like '%CREATE OR REPLACE VIEW%'
group by ddltext
order by 执行次数 desc;

其中时长标准差越大,说明该语句的执行时长波动越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:01:25