PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

daftar skema dengan ukuran (relatif dan absolut) dalam database PostgreSQL

Coba ini:

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


Sunting:hanya memperhatikan solusi dengan menjumlahkan semua tabel untuk mendapatkan ukuran database tidak diperlukan:

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. Bagaimana cara membulatkan ke X menit terdekat dengan PL/pgSQL?

  2. kunci duplikat postgresql melanggar batasan unik

  3. Simulasikan CREATE DATABASE JIKA TIDAK ADA untuk PostgreSQL?

  4. ~/.psqlrc file untuk DBA

  5. Hitung Maks Jumlah dari bidang beranotasi di atas yang dikelompokkan menurut kueri di Django ORM?