¿Cómo puedo enumerar todas las tablas de una base de datos PostgreSQL y ordenarlas por tamaño ?
sql
postgresql
postgresql-9.3
nada-especial-aqui
fuente
fuente
\d+
le mostrará esta información, aunque sin clasificar.Respuestas:
Esto le muestra el tamaño de todas las tablas en el esquema
public
si tiene varios esquemas, es posible que desee utilizar:Ejemplo de SQLFiddle: http://sqlfiddle.com/#!15/13157/3
Lista de todas las funciones de tamaño de objeto en el manual .
fuente
select table_schema, table_name, pg_relation_size(table_schema||'.'||table_name) from information_schema.tables order by 3;
gracias por la ayuda!select * from information_schema.tables where table_schema = 'public';
produce cero filas aunque\dn
muestra el esquema público. ¿Quizás un cambio en 9.5 causó esto?Esto le mostrará el nombre del esquema, el nombre de la tabla, el tamaño bonito y el tamaño (necesario para ordenar).
Construyo esto en base a las soluciones de esta lista de esquemas con tamaños (relativos y absolutos) en una base de datos PostgreSQL
fuente
Esto quedará más claro.
pg_size_pretty(<numeric_value>)
- convierte el número de bytes a formato legible por humanos.pg_database_size(<db_name>)
- obtiene el tamaño de la base de datos en bytes .pg_total_relation_size(<relation_name>)
- obtiene el tamaño total de la tabla y su índice en bytes .pg_relation_size(<relation_name>)
- obtiene el tamaño de la relación (tabla / índice) en bytes .pg_index_size(<relation_name>)
- obtiene el tamaño del índice de la relación en bytes .current_database()
: obtiene la base de datos utilizada actualmente en la que se realiza esta consulta.Consulta:
Resultado:
El formato humanizado se representan en
bytes
,kB
,MB
,GB
, yTB
.bytes
akB
- comienza desde10240 bytes
bytes
aMB
- comienza desde10485248 bytes
=10239.5 kB
~10 MB
bytes
aGB
- comienza desde10736893952 bytes
=10239.5 MB
~10 BG
bytes
aTB
- comienza desde10994579406848 bytes
=10239.5 GB
~10 TB
Todas las conversiones de unidades comienzan desde
10 + <unit>
.Para referencia - Documentación oficial de Postgres
fuente
tomado de aquí https://wiki-bsse.ethz.ch/display/ITDOC/Check+size+of+tables+and+objects+in+PostgreSQL+database
fuente
Otra alternativa
fuente
Necesitaba encontrar qué tablas usan más espacio.
Basado en otras respuestas, utilicé esa consulta:
Obtengo el siguiente resultado:
Debería haber comprado un SSD más grande.
fuente
fuente