Postgres数据库大小命令
有什么命令可以在Postgres中查找所有的数据库大小吗?
我能够通过使用以下命令find特定数据库的大小:
select pg_database_size('databaseName');
而且…如果万一你不想input一个完整的查询…你也可以input…
\l+ <database_name>
你会得到一些关于数据库的细节,包括数据库的大小。
和…获取所有数据库的大小。
你可以input…
\l+
您可能需要进入postgresql命令提示符以查询这些postgresql帮助器命令。
通过键入检查其他postgresql帮助程序命令
\?
在postgresql命令提示符下。
您可以从“pg_datbase”系统表中获取可以连接到的所有数据库的名称。 只需将该函数应用于名称,如下所示。
select t1.datname AS db_name, pg_size_pretty(pg_database_size(t1.datname)) as db_size from pg_database t1 order by pg_database_size(t1.datname) desc;
如果你希望输出被一台机器而不是一台人使用,你可以切断pg_size_pretty()函数。
-- Database Size SELECT pg_size_pretty(pg_database_size('Database Name')); -- Table Size SELECT pg_size_pretty(pg_relation_size('table_name'));
基于@Hendy Irawan的答案
显示数据库大小:
\l+
例如
=> \l+ berbatik_prd_commerce | berbatik_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 19 MB | pg_default | berbatik_stg_commerce | berbatik_stg | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8633 kB | pg_default | bursasajadah_prd | bursasajadah_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 1122 MB | pg_default |
显示表格大小:
\d+
例如
=> \d+ public | tuneeca_prd | table | tomcat | 8192 bytes | public | tuneeca_stg | table | tomcat | 1464 kB |
只适用于psql
。
来自PostgreSQL维基 。
用户无法连接的数据库按照无限大小sorting。
SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname)) ELSE 'No Access' END AS Size FROM pg_catalog.pg_database d ORDER BY CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE NULL END DESC -- nulls first LIMIT 20
该页面也有片段,用于查找您最大的关系和最大的表格的大小。
启动pgAdmin,连接到服务器,单击数据库名称,然后select统计信息选项卡。 您将在列表底部看到数据库的大小。
然后,如果您单击另一个数据库,它将保留在统计信息选项卡上,以便您可以轻松地查看许多数据库大小。 如果您打开表格列表,则会显示所有表格及其大小。
SELECT pg_size_pretty(pg_database_size('name of database'));
会给你一个特定的数据库的总大小,但我不认为你可以做一个服务器内的所有数据库。
不过你可以这样做…
DO $$ DECLARE r RECORD; db_size TEXT; BEGIN FOR r in SELECT datname FROM pg_database WHERE datistemplate = false LOOP db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname))); RAISE NOTICE 'Database:% , Size:%', r.datname , db_size; END LOOP; END; $$
您可以使用下面的查询来查找PostgreSQL的所有数据库的大小。
参考来自这个博客。
SELECT datname AS DatabaseName ,pg_catalog.pg_get_userbyid(datdba) AS OwnerName ,CASE WHEN pg_catalog.has_database_privilege(datname, 'CONNECT') THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname)) ELSE 'No Access For You' END AS DatabaseSize FROM pg_catalog.pg_database ORDER BY CASE WHEN pg_catalog.has_database_privilege(datname, 'CONNECT') THEN pg_catalog.pg_database_size(datname) ELSE NULL END DESC;
- 将Python的Postgres psycopg2查询性能改进到与Java的JDBC驱动程序相同的级别
- 安全且干净地重命名在Postgres中使用串行主键列的表?
- 快速发现PostgreSQL中表格的行数
- SELECT或INSERT在一个容易出现竞争条件的函数中?
- postgresql:INSERT INTO …(SELECT * …)
- Socket File“/var/pgsql_socket/.s.PGSQL.5432”在Mountain Lion中丢失(OS X Server)
- 从PostgreSQL表中导出特定的行作为INSERT SQL脚本
- 为什么要通过一个耗费大量内存的大型Django QuerySet进行迭代?
- PostgreSQL:以分钟为单位运行查询的行数