模式大小
来自 PostgreSQL 维基
跳转到导航跳转到搜索作者:Emanuel Calvo
模式大小
此函数提供了一种简单的方法来获取一个模式的大小。请注意,如果指定的模式不存在,此脚本将返回 0。
CREATE OR REPLACE FUNCTION pg_schema_size(text) returns bigint AS $$
select sum(pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(tablename)))::bigint from pg_tables where schemaname = $1
$$ language sql;
一种执行方法
general_base=# select pg_size_pretty(pg_schema_size('public'));
-[ RECORD 1 ]--+--------
pg_size_pretty | 4782 MB
以下是一个修改后的脚本版本,它允许您提供一个区分大小写的正则表达式,以仅考虑模式中的一部分表名
CREATE OR REPLACE FUNCTION pg_schema_size_filter(text, text) returns bigint AS $$
select sum(pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(tablename)))::bigint from pg_tables where schemaname = $1 and tablename ~ $2
$$ language sql;
数据库大小
有时我们需要快速了解我们数据库的大小,如果你很懒,只需在你拥有的每个数据库中编译这个函数并执行它!
CREATE OR REPLACE FUNCTION sizedb() RETURNS text AS $$
SELECT pg_size_pretty(pg_database_size(current_database()));
$$ LANGUAGE sql;