Bagaimana cara mendaftar semua tabel database PostgreSQL dan mengurutkannya berdasarkan ukurannya ?
sql
postgresql
postgresql-9.3
tidak ada yang istimewa di sini
sumber
sumber
\d+
akan menampilkan informasi ini, meskipun tidak disortir.Jawaban:
Ini menunjukkan kepada Anda ukuran semua tabel di skema
public
jika Anda memiliki beberapa skema, Anda mungkin ingin menggunakan:Contoh SQLFiddle: http://sqlfiddle.com/#!15/13157/3
Daftar semua fungsi ukuran objek di manual .
sumber
select table_schema, table_name, pg_relation_size(table_schema||'.'||table_name) from information_schema.tables order by 3;
terima kasih atas bantuannya!select * from information_schema.tables where table_schema = 'public';
menghasilkan nol baris meskipun\dn
menunjukkan skema publik. Mungkin perubahan 9,5 menyebabkan ini?Ini akan menunjukkan kepada Anda nama skema, nama tabel, ukuran cantik dan ukuran (diperlukan untuk pengurutan).
Saya membangun ini berdasarkan solusi dari daftar skema dengan ukuran (relatif dan absolut) di database PostgreSQL di sini
sumber
Ini akan lebih jelas.
pg_size_pretty(<numeric_value>)
- mengubah jumlah byte ke format yang dapat dibaca manusia.pg_database_size(<db_name>)
- mendapat ukuran database dalam byte .pg_total_relation_size(<relation_name>)
- mendapatkan ukuran total tabel dan indeksnya dalam byte .pg_relation_size(<relation_name>)
- mendapat ukuran hubungan (tabel / indeks) dalam byte .pg_index_size(<relation_name>)
- mendapat ukuran indeks dari relasi dalam byte .current_database()
- mendapatkan database yang sedang digunakan untuk menjalankan kueri ini.Pertanyaan:
Hasil:
Format manusiawi yang mewakili dalam
bytes
,kB
,MB
,GB
, danTB
.bytes
untukkB
- dimulai dari10240 bytes
bytes
keMB
- dimulai dari10485248 bytes
=10239.5 kB
~10 MB
bytes
keGB
- dimulai dari10736893952 bytes
=10239.5 MB
~10 BG
bytes
keTB
- dimulai dari10994579406848 bytes
=10239.5 GB
~10 TB
Semua konversi unit dimulai dari
10 + <unit>
.Untuk referensi - Dokumentasi Resmi Postgres
sumber
diambil dari sini https://wiki-bsse.ethz.ch/display/ITDOC/Check+size+of+tables+and+objects+in+PostgreSQL+database
sumber
Alternatif lain
sumber
Saya perlu menemukan tabel mana yang paling banyak menggunakan ruang.
Berdasarkan jawaban lain, saya menggunakan kueri itu:
Saya mendapatkan hasil sebagai berikut:
Saya seharusnya membeli SSD yang lebih besar.
sumber
sumber