sql >> Database teknologi >  >> RDS >> PostgreSQL

liste over skemaer med størrelser (relative og absolutte) i en PostgreSQL-database

Prøv dette:

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


Rediger:har lige bemærket, at løsningen med at opsummere alle tabeller for at få databasestørrelsen ikke er nødvendig:

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. Hvordan får jeg min, median og max fra min forespørgsel i postgresql?

  2. Skrivning af rekursiv CTE ved hjælp af Entity Framework Fluent syntaks eller Inline syntaks

  3. Bestil varchar-streng som numerisk

  4. Høj tilgængelighed på et begrænset budget - implementering af en minimal MySQL Galera Cluster med to knudepunkter