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

Dapatkan Ukuran Beberapa Tabel dalam Satu Kueri POSTGRES?

Kueri pemilihan berikut akan mengembalikan semua tabel dan ukuran

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;

Buat TAMPILAN dengan pilihan ini

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;

dan sekarang Anda dapat melakukan kueri pada tampilan ini untuk mendapatkan ukuran seperti ini

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

Sesuai Komentar 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;

dan dapatkan jumlah ukuran beberapa kolom menggunakan

/* 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

Buat vTableAndSize_1 di PostgreSQL . Anda database dan kueri seperti di bawah ini di ujung depan Anda (saya tidak terbiasa dengan 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. Pada INSERT ke tabel INSERT data di tabel yang terhubung

  2. Cara menentukan ApplicationName dalam string koneksi NpgSql

  3. Bagaimana cara menghapus array 2d menjadi array 1d dengan cepat di PostgreSQL?

  4. Mencegah injeksi SQL di PHP dengan MDB2

  5. Postgres:Melewati tipe khusus dari Java ke fungsi postgres