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

Citus 11.1.5中pg_stat_all_tables无数据,如何获取表使用信息?

解决Citus分布式表统计信息为空的问题

为什么pg_stat_all_tables返回零值?

Citus的分布式表是由多个分片存储在工作节点上的逻辑表:协调器节点上的pg_stat_all_tables仅针对本地逻辑表条目,没有实际数据支撑,因此统计字段全为0;工作节点上的分片是物理表,但默认统计收集可能未及时更新,或是你没匹配到正确的分片表名称(分片表命名格式为原表名_分片ID,比如orders_102003)。

获取统计信息的正确方法

1. 协调器节点:使用Citus内置聚合视图

Citus提供了pg_stat_distributed_tables视图,会自动从所有工作节点聚合分片的统计数据,直接查询就能拿到分布式表的整体元组情况、VACUUM记录:

SELECT 
  relname AS table_name,
  n_live_tup AS live_tuples,
  n_dead_tup AS dead_tuples,
  last_vacuum AS manual_vacuum_time,
  last_autovacuum AS auto_vacuum_time
FROM pg_stat_distributed_tables;

2. 工作节点:查询单个分片的详细统计

如果需要查看特定分片的统计,登录对应工作节点,直接查询pg_stat_all_tables并匹配分片表名:

SELECT 
  relname AS shard_name,
  n_live_tup,
  n_dead_tup,
  last_vacuum,
  last_autovacuum
FROM pg_stat_all_tables
WHERE relname LIKE 'your_table_name_%'; -- 替换为你的分布式表名前缀

3. 确保统计信息最新

如果查询结果还是为空,手动触发统计收集(协调器执行会同步到所有分片):

ANALYZE your_distributed_table_name;

执行后等待几秒再查询统计视图,就能看到更新后的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:17:47