如何查询Redshift当前生效的statement_timeout参数值
查询Redshift集群实际生效的statement_timeout参数值方法
1. 直连集群查询运行时值(结果100%准确)
不要只依赖控制台的参数组显示值判断是否生效,控制台展示的是参数组存储的配置,不是集群运行时实际加载的值。直接通过SQL客户端连接目标Redshift集群,执行以下命令即可拿到当前会话实际生效的参数值:
SHOW statement_timeout;
如果需要查看集群全局加载的参数值,可以查询系统视图:
SELECT name, value, source FROM stv_internal_config WHERE name = 'statement_timeout';
返回结果里的value字段就是真实生效的值。
2. 参数组显示同步完成但配置未生效的原因
Redshift参数组的参数按生效逻辑分为两类:
- 动态参数:修改后等参数组同步状态变为
in sync,无需重启,所有新建会话会自动应用新值,已存在的老会话继续沿用创建时的旧值 - 静态参数:
statement_timeout就属于静态参数,这类参数即使控制台显示同步完成,也必须重启集群才会被加载到运行时,重启前所有会话都会一直使用旧配置,不属于同步故障。
补充:如果临时需要调整超时时间、不想重启集群,可以在当前会话内直接执行会话级设置,该设置仅对当前连接生效,断开后自动失效:
-- 单位为毫秒,示例设置为5分钟超时 SET statement_timeout = 300000;
内容的提问来源于stack exchange,提问作者user433342
相关产品推荐
相关产品推荐

