tutorial tables postgres pg_database_size per example commands sql postgresql postgresql-9.2

sql - tables - Postgres DB Size Command



psql connect to database (10)

Basado en la respuesta here por @Hendy Irawan

Mostrar tamaños de base de datos:

/l+

p.ej

=> /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 |

Mostrar tamaños de mesa:

/d+

p.ej

=> /d+ public | tuneeca_prd | table | tomcat | 8192 bytes | public | tuneeca_stg | table | tomcat | 1464 kB |

Solo funciona en psql .

¿Hay algún comando para encontrar el tamaño de todas las bases de datos en Postgres?

Puedo encontrar el tamaño de una base de datos específica usando el siguiente comando:

select pg_database_size(''databaseName'');


Desde el wiki de PostgreSQL .

Las bases de datos a las que el usuario no puede conectarse se clasifican como si tuvieran un tamaño infinito.

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

La página también tiene fragmentos para encontrar el tamaño de tus relaciones más grandes y tablas más grandes.


Inicie pgAdmin, conéctese al servidor, haga clic en el nombre de la base de datos y seleccione la pestaña de estadísticas. Verá el tamaño de la base de datos en la parte inferior de la lista.

Luego, si hace clic en otra base de datos, permanece en la pestaña de estadísticas para que pueda ver fácilmente muchos tamaños de base de datos sin mucho esfuerzo. Si abre la lista de tablas, muestra todas las tablas y sus tamaños.


Puede obtener los nombres de todas las bases de datos a las que puede conectarse desde la tabla del sistema "pg_datbase". Simplemente aplique la función a los nombres, como se muestra a continuación.

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;

Si pretende que la salida sea consumida por una máquina en lugar de una humana, puede cortar la función pg_size_pretty ().


Puede usar la siguiente consulta para encontrar el tamaño de todas las bases de datos de PostgreSQL.

La referencia es tomada de este blog.

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;


Sí, hay un comando para encontrar el tamaño de una base de datos en Postgres. Es el siguiente:

SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;


SELECCIONE pg_size_pretty (pg_database_size (''nombre de la base de datos''));

Le dará el tamaño total de una base de datos particular, sin embargo, no creo que pueda hacer todas las bases de datos dentro de un servidor.

Sin embargo usted podría hacer esto ...

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; $$


Y ... Si no desea escribir una consulta completa ... también puede escribir ...

/l+ <database_name>

y obtendrá algunos detalles sobre la base de datos, incluido el tamaño de la base de datos.

Y ... Para obtener tamaños de todas las bases de datos.

usted puede simplemente escribir ...

/l+

Es posible que deba ingresar al indicador de comando postgresql para consultar con estos comandos de ayuda postgresql.

Compruebe otros comandos de ayuda postgresql escribiendo

/?

en el símbolo del sistema postgresql.


-- Database Size SELECT pg_size_pretty(pg_database_size(''Database Name'')); -- Table Size SELECT pg_size_pretty(pg_relation_size(''table_name''));


du -k /var/lib/postgresql/ |sort -n |tail