【问题标题】:Why the table pg_stat_user_tables is blank?为什么表 pg_stat_user_tables 是空白的?
【发布时间】:2016-10-14 12:08:59
【问题描述】:

我是 postgres 的新手。

我正在检查表 pg_stat_user_tables 中的统计信息,但没有得到任何结果。它说找到 0 行。

知道这个表是如何更新的吗? 是否有任何参数可以启用统计信息?

谢谢

【问题讨论】:

标签: database postgresql postgresql-9.2


【解决方案1】:

那是因为该数据库中没有用户表(数据库只包含系统表)。

使用pg_stat_all_tables 获取有关数据库中所有表的信息。

【讨论】:

  • 这里的用户是指数据库名吗?
  • pg_stat_all_tablespg_stat_user_tables 都只包含同一数据库中的表。前者包含所有表,后者不显示系统表。
  • 是的,如果两个数据库都显示表。那么为什么我的 pg_stat_user_tables 是空白的?事实上,我在 postgres 模式中有很多表,知道吗?
  • 如果你创建了一个表,清理它并且pg_stat_user_tables 中没有条目,这是非常错误的。要么是不是正常的PostgreSQL,要么是数据损坏。
  • 重要的是要知道从你需要信息的模式执行查询,例如在 postgres 模式中执行函数 pg_stat_user_tables 不会返回任何数据(它发生在我身上),因为没有此架构中的用户表。