PostgreSQL中的记录表和模式大小

PostgreSQL中的记录表和模式大小,postgresql,size,Postgresql,Size,这是查询postgres数据库大小的简单方法吗? 我正在尝试这样做: select 'session_metrics',pg_size_pretty(pg_total_relation_size('schema1.session_metrics')) union select 'transaction_metrics',pg_size_pretty(pg_total_relation_size('schema1.transaction_metrics')) union select 'cooki

这是查询postgres数据库大小的简单方法吗? 我正在尝试这样做:

select 'session_metrics',pg_size_pretty(pg_total_relation_size('schema1.session_metrics'))
union
select 'transaction_metrics',pg_size_pretty(pg_total_relation_size('schema1.transaction_metrics'))
union
select 'cookie_user_metrics',pg_size_pretty(pg_total_relation_size('schema1.cookie_user_metrics'))
union
select 'cookie_transaction_metrics',pg_size_pretty(pg_total_relation_size('schema1.cookie_transaction_metrics'));
并将这些值存储在表中,以便以后可以轻松跟踪表的增长率。 问题是我现在有50多个不同的表,我不想每次创建新表时都添加一行查询

如果有人能让我了解以下情况,我将不胜感激:

select table_name, schema_name, size;

您要查找的“表名”表是pg_catalog.pg_名称空间。 以下查询改编自psql
\d
命令:

SELECT n.nspname as "Schema", 
    c.relname as "Name",
    pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid)) as "Size", 
    now() as "Timestamp"
FROM pg_catalog.pg_class c
 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname <> 'pg_catalog'
  AND n.nspname <> 'information_schema'
  AND n.nspname !~ '^pg_toast'
选择n.nspname作为“Schema”,
c、 将名称重新命名为“名称”,
pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid))作为“size”,
now()作为“时间戳”
来自pg_catalog.pg_c类
左连接pg_catalog.pg_命名空间n ON n.oid=c.relnamespace
其中n.nspname“pg_目录”
和n.nspname“信息\模式”
还有n.name!~'^pg_吐司'

由于您计划随时间比较大小,因此我冒昧地添加了时间戳。

您要查找的“表名”表是pg_catalog.pg_名称空间。 以下查询改编自psql
\d
命令:

SELECT n.nspname as "Schema", 
    c.relname as "Name",
    pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid)) as "Size", 
    now() as "Timestamp"
FROM pg_catalog.pg_class c
 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname <> 'pg_catalog'
  AND n.nspname <> 'information_schema'
  AND n.nspname !~ '^pg_toast'
选择n.nspname作为“Schema”,
c、 将名称重新命名为“名称”,
pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid))作为“size”,
now()作为“时间戳”
来自pg_catalog.pg_c类
左连接pg_catalog.pg_命名空间n ON n.oid=c.relnamespace
其中n.nspname“pg_目录”
和n.nspname“信息\模式”
还有n.name!~'^pg_吐司'

由于您计划随时间比较尺码,因此我冒昧添加了一个时间戳。

正是我想要的,谢谢!这将是一个很酷的方式来监控我的桌子上的负载,看看是否有一个正在过度增长。这正是我想要的,谢谢!这将是一个很酷的方式来监控我的桌子上的负载,看看是否有一个正在过度增长。