我的目标是生成一个报告,显示在特定模式下PostgreSQL数据库中每天/每月保存的记录数。
到目前为止,我有一些类似的字节与大小(MB)不计数和与overal总和
SELECT
table_schema || '.' || table_name AS table_full_name,
pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables
where table_schema = 'public'
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC;
是否有生成此类报告的解决方案:
| 表格名称|计数|资料|
| - ------|- ------|- ------|
| 富|三一二|二○二三年三月三十日|
| 富|一百一十一|二○二三年三月二十九日|
| 棒|三一二|二○二三年三月三十日|
| 棒|三四四|二○二三年三月二十九日|
2条答案
按热度按时间x7rlezfr1#
如果您可以获得近似计数(由stuff like
vacuum analyze
statements维护),那么您可以使用这样的查询:然后创建一个表once并插入第一批:
然后在cron或别的什么东西中,添加新数据:
然后,最后查询显示结果:
请注意,使用
format('%I')
或quote_ident()
始终可以正确转义双引号。否则,您将需要使用动态查询,使用plpgsql,例如:
execute format('…')
,如www.example.com中的示例https://www.postgresql.org/docs/15/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATINGdeyfvvtc2#
查看
pg_stat_all_tables
系统视图:您可以使用
cron
或pg_cron
每天对此视图进行快照,以便不仅监视估计的行数,还监视导致该行数的流量。要实时查看所有流量,您可以使用
pg_recvlogical
接入logical streaming replication protocol。