我怎样才能得到我的 PostgreSQL 服务器上每个数据库的大小
How can i get the size of every db on my PostgreSQL server
我需要在我的 C# 控制台应用程序中获取每个 table 和我的 PostgreSQL 服务器上每个数据库的大小。
我正在使用 npgsql 进行服务器连接,并且我找到了 table 部分
的脚本
SELECT table_schema AS \"Database\",
SUM(data_length + index_length) / 1024 / 1024 AS \"Size(MB)\"
FROM information_schema.TABLES
GROUP BY table_schema
但我仍然无法切换数据库。如何在不知道名称的情况下连接到服务器上的不同数据库。
利用系统信息功能:
https://www.postgresql.org/docs/current/functions-admin.html
对于数据库大小:
select datname, pg_size_pretty(pg_database_size(datname)) from pg_database ;
datname | pg_size_pretty
------------------------+----------------
my_test_db | 7865 kB
production | 64 MB
no_public_sch_template | 7857 kB
test | 11 MB
test_gz | 9681 kB
sch_test | 7857 kB
template0 | 7713 kB
task_manager | 9681 kB
template1 | 7865 kB
aquaculture | 15 MB
track_stocks | 9425 kB
track_stocks_test | 9529 kB
postgres | 8273 kB
您可以从 pg_database 获取数据库名称 (datname),用于构建脚本以对表进行迭代。
我需要在我的 C# 控制台应用程序中获取每个 table 和我的 PostgreSQL 服务器上每个数据库的大小。 我正在使用 npgsql 进行服务器连接,并且我找到了 table 部分
的脚本SELECT table_schema AS \"Database\",
SUM(data_length + index_length) / 1024 / 1024 AS \"Size(MB)\"
FROM information_schema.TABLES
GROUP BY table_schema
但我仍然无法切换数据库。如何在不知道名称的情况下连接到服务器上的不同数据库。
利用系统信息功能:
https://www.postgresql.org/docs/current/functions-admin.html
对于数据库大小:
select datname, pg_size_pretty(pg_database_size(datname)) from pg_database ;
datname | pg_size_pretty
------------------------+----------------
my_test_db | 7865 kB
production | 64 MB
no_public_sch_template | 7857 kB
test | 11 MB
test_gz | 9681 kB
sch_test | 7857 kB
template0 | 7713 kB
task_manager | 9681 kB
template1 | 7865 kB
aquaculture | 15 MB
track_stocks | 9425 kB
track_stocks_test | 9529 kB
postgres | 8273 kB
您可以从 pg_database 获取数据库名称 (datname),用于构建脚本以对表进行迭代。