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

Redshift如何查看表中已分析(Analyzed)的列信息

Redshift查看表列"Analyzed(已分析)"状态的方法

Redshift没有和Teradata HELP STATS 完全同名的单条格式化输出命令,但通过内置系统视图可以拿到完全等价的列分析状态、统计信息详情,具体方法如下:

  • 查询列级已分析标记
    直接查询SVV_COLUMN_STATS系统视图即可,这是Redshift存储列级统计元数据的核心视图,其中stats_updated字段非空就代表该列已经完成统计分析,完全对应你要找的"Analyzed"标记,同时还能获取列的基数、空值数等统计值:
SELECT
  schema_name,
  table_name,
  column_name,
  stats_updated, -- 非空即为已分析状态
  num_distinct,
  num_nulls
FROM svv_column_stats
WHERE schema_name = '替换为目标schema名称'
  AND table_name = '替换为目标表名称';
  • 查询表级统计信息健康度
    如果需要确认统计信息是否过期,可以查询SVV_TABLE_INFO视图,其中stats_off字段代表统计结果和实际数据的偏差比例,数值为0代表统计信息完全最新,数值越大说明统计信息过期越久、查询优化器参考价值越低:
SELECT
  schema,
  "table",
  stats_off, -- 统计偏差率,0为最新状态
  rows,
  size
FROM svv_table_info
WHERE schema = '替换为目标schema名称'
  AND "table" = '替换为目标表名称';
  • 查询历史分析操作日志
    如果需要追溯ANALYZE任务的执行记录(包括后台自动触发的自动分析任务),可以查询STL_ANALYZE系统日志表,里面存储了所有历史分析操作的执行时间、涉及列、运行状态等信息:
SELECT
  xid,
  tbl AS table_id,
  colname,
  starttime,
  endtime,
  status
FROM stl_analyze
WHERE tbl = '替换为目标表名称'::regclass
ORDER BY starttime DESC;

补充说明:Redshift默认开启Auto Analyze自动分析特性,后台会自动对数据变动量超过阈值的表更新列统计信息,上述视图会自动同步自动分析产生的状态数据,不需要手动执行ANALYZE命令也能查到最新的列分析标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:01:10