PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

danh sách lược đồ với các kích thước (tương đối và tuyệt đối) trong cơ sở dữ liệu PostgreSQL

Hãy thử điều này:

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


Chỉnh sửa:chỉ nhận thấy cách giải quyết với việc tổng hợp tất cả các bảng để có được kích thước cơ sở dữ liệu là không cần thiết:

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. ClassNotFoundException với PostgreSQL và JDBC

  2. DROP TABLE IF EXISTS Ví dụ trong PostgreSQL

  3. Lỗi ứng dụng thử nghiệm django - Gặp lỗi khi tạo cơ sở dữ liệu thử nghiệm:quyền tạo cơ sở dữ liệu bị từ chối

  4. Làm cách nào để đọc nội dung của tệp .sql thành tập lệnh R để chạy truy vấn?

  5. Làm thế nào để đặt lại trình tự trong postgres và điền vào cột id bằng dữ liệu mới?