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

Uzyskaj rozmiar wielu tabel w jednym zapytaniu POSTGRES?

Następujące zapytanie select zwróci całą tabelę i jej rozmiar

SELECT
   relname as mytable,
   pg_size_pretty(pg_relation_size(relid)) As size
   FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;

Utwórz WIDOK z tym zaznaczeniem

CREATE VIEW vTableAndSize AS 
SELECT
   relname as mytable,
   pg_size_pretty(pg_relation_size(relid)) As size
   FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;

a teraz możesz zapytać o ten widok, aby uzyskać taki rozmiar

SELECT mytable,size 
       FROM vTableAndSize WHERE mytable in ('table1','table2')

Zgodnie z Komentarz OP

CREATE VIEW vTableAndSize_1 as 
SELECT
   relname as mytable,
   (pg_relation_size(relid)) As size
   FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;

i uzyskaj sumę rozmiarów wielu kolumn za pomocą

/* Get sum of specific tables */
SELECT pg_size_pretty(sum(size)) tablesizesum 
       FROM vTableAndSize_1 WHERE mytable in ('table1','table2')

/* Get sum of all tables */
SELECT pg_size_pretty(sum(size)) tablesizesum 
       FROM vTableAndSize_1

Utwórz vTableAndSize_1 w twoim PostgreSQL baza danych i zapytanie jak poniżej w twoim interfejsie (nie jestem zaznajomiony z Ruby )

ActiveRecord::Base.connection.execute("SELECT pg_size_pretty(sum(size)) FROM vTableAndSize_1 
WHERE mytable in ('table1','table2')")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można odjąć dat naiwnych dla offsetu i uwzględniających offset

  2. Postgresql - czy istnieje sposób na wyłączenie wyświetlania instrukcji INSERT podczas wczytywania z pliku?

  3. Jak pracować z ułamkami dziesiętnymi o wysokiej precyzji w PHP?

  4. PostgreSQL:tworzenie wygenerowanej kolumny

  5. pg_restore Alternatywy - Kopia zapasowa PostgreSQL i automatyczne odzyskiwanie za pomocą ClusterControl