Apakah ada perintah untuk menemukan semua ukuran database di Postgres?
Saya dapat menemukan ukuran database tertentu dengan menggunakan perintah berikut:
select pg_database_size('databaseName');
Apakah ada perintah untuk menemukan semua ukuran database di Postgres?
Saya dapat menemukan ukuran database tertentu dengan menggunakan perintah berikut:
select pg_database_size('databaseName');
Jawaban:
Dan ... Jika seandainya Anda tidak ingin mengetikkan seluruh permintaan ... Anda juga dapat mengetik ...
\l+ <database_name>
dan Anda akan mendapatkan beberapa detail tentang basis data, termasuk ukuran basis data.
Dan ... Untuk mendapatkan ukuran semua basis data.
Anda cukup mengetik ...
\l+
Anda mungkin perlu masuk ke command prompt postgresql untuk melakukan query dengan perintah pembantu postgresql ini.
Periksa perintah pembantu postgresql lainnya dengan mengetik
\?
di prompt perintah postgresql.
Anda bisa mendapatkan nama semua basis data yang bisa Anda sambungkan dari tabel sistem "pg_datbase". Cukup terapkan fungsi ke nama-nama, seperti di bawah ini.
select t1.datname AS db_name,
pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;
Jika Anda ingin output dikonsumsi oleh mesin alih-alih manusia, Anda dapat memotong fungsi pg_size_pretty ().
pg_database_size()
termasuk ukuran untuk indeks
\l+
. Format output lebih mudah dibaca, (kurang kolom). Pertukaran antara kemampuan menulis dan keterbacaan ...
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
Berdasarkan jawaban di sini oleh @Hendy Irawan
Tampilkan ukuran basis data:
\l+
misalnya
=> \l+
berbatik_prd_commerce | berbatik_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 19 MB | pg_default |
berbatik_stg_commerce | berbatik_stg | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8633 kB | pg_default |
bursasajadah_prd | bursasajadah_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 1122 MB | pg_default |
Tampilkan ukuran tabel:
\d+
misalnya
=> \d+
public | tuneeca_prd | table | tomcat | 8192 bytes |
public | tuneeca_stg | table | tomcat | 1464 kB |
Hanya bekerja di psql
.
\d+ *
bekerja, polos \d+
kembaliDid not find any relations.
\c dbname
), lalu lakukan \d+
.
Ya, ada perintah untuk menemukan ukuran database di Postgres. Berikut ini:
SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;
SELECT database_name, pg_size_pretty(size) from (SELECT pg_database.datname as "database_name", pg_database_size(pg_database.datname) AS size FROM pg_database ORDER by size DESC) as ordered;
SELECT pg_database.datname AS "DB Name", pg_size_pretty(pg_database_size(pg_database.datname)) AS "Size" FROM pg_database ORDER BY (pg_database_size(pg_database.datname)) DESC;
.
SELECT pg_size_pretty(pg_database_size('name of database'));
Akan memberi Anda ukuran total database tertentu namun saya tidak berpikir Anda bisa melakukan semua database dalam server.
Namun Anda bisa melakukan ini ...
DO
$$
DECLARE
r RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));
RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;
END LOOP;
END;
$$
pg_database
bukan pl / pgsql yang mengerikan ini?
Dari wiki PostgreSQL .
CATATAN: Basis data yang tidak dapat disambungkan pengguna diurutkan seolah-olah berukuran tak terbatas.
SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END AS Size
FROM pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_database_size(d.datname)
ELSE NULL
END DESC -- nulls first
LIMIT 20
Halaman ini juga memiliki cuplikan untuk menemukan ukuran hubungan terbesar Anda dan tabel terbesar.
Anda dapat menggunakan kueri di bawah ini untuk menemukan ukuran semua database PostgreSQL.
Referensi diambil dari blog ini.
SELECT
datname AS DatabaseName
,pg_catalog.pg_get_userbyid(datdba) AS OwnerName
,CASE
WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
ELSE 'No Access For You'
END AS DatabaseSize
FROM pg_catalog.pg_database
ORDER BY
CASE
WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
THEN pg_catalog.pg_database_size(datname)
ELSE NULL
END DESC;
Mulai pgAdmin, sambungkan ke server, klik pada nama database, dan pilih tab statistik. Anda akan melihat ukuran database di bagian bawah daftar.
Kemudian jika Anda mengklik pada basis data lain, ia tetap pada tab statistik sehingga Anda dapat dengan mudah melihat banyak ukuran basis data tanpa banyak usaha. Jika Anda membuka daftar tabel, itu menunjukkan semua tabel dan ukurannya.
Databases
simpul pohon (terlampir pada koneksi DB) dan pilih Statistics
tab Anda akan disajikan ringkasan yang bagus dari semua Database dan ukurannya (kolom ketiga).
du -k /var/lib/postgresql/ |sort -n |tail
du -k /var/lib/pgsql/ | sort -n | tail