PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

lista schematów z rozmiarami (względnymi i bezwzględnymi) w bazie danych PostgreSQL

Spróbuj tego:

SELECT schema_name, 
       sum(table_size),
       (sum(table_size) / database_size) * 100
FROM (
  SELECT pg_catalog.pg_namespace.nspname as schema_name,
         pg_relation_size(pg_catalog.pg_class.oid) as table_size,
         sum(pg_relation_size(pg_catalog.pg_class.oid)) over () as database_size
  FROM   pg_catalog.pg_class
     JOIN pg_catalog.pg_namespace ON relnamespace = pg_catalog.pg_namespace.oid
) t
GROUP BY schema_name, database_size


Edytuj:właśnie zauważyłem, że obejście z sumowaniem wszystkich tabel w celu uzyskania rozmiaru bazy danych nie jest konieczne:

SELECT schema_name, 
       pg_size_pretty(sum(table_size)::bigint),
       (sum(table_size) / pg_database_size(current_database())) * 100
FROM (
  SELECT pg_catalog.pg_namespace.nspname as schema_name,
         pg_relation_size(pg_catalog.pg_class.oid) as table_size
  FROM   pg_catalog.pg_class
     JOIN pg_catalog.pg_namespace ON relnamespace = pg_catalog.pg_namespace.oid
) t
GROUP BY schema_name
ORDER BY schema_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać źródło danych PostgreSQL do WildFly 9.0?

  2. Rozpakuj tablicę o jeden poziom

  3. Jak zaktualizować wszystkie kolumny za pomocą INSERT ... ON CONFLICT ...?

  4. Jak w PostgreSQL wstawić dane za pomocą polecenia COPY?

  5. Czy w nazwach kolumn PostgreSQL jest rozróżniana wielkość liter?