PostgreSQL veritabanında hangi veritabanının veya tablonun ne kadar yer kapladığını aşağıdaki sorgularla bulabilirsiniz.
pg_database_size fonksiyonu ile veritabanının boyutunu integer olarak alırsınız. pg_size_pretty fonksiyonu ile de bu integer değerini daha okunabilir bir formata çevirirsiniz.
mail=> select pg_size_pretty(pg_database_size('mail'));
pg_size_pretty
----------------
313 MB
(1 row)
Tek bir tablonun boyunu ise pg_relation_size fonksiyonu ile bulabilirsiniz.
mail=> select pg_size_pretty(pg_relation_size('maillog_130315'));
pg_size_pretty
----------------
480 kB
(1 row)
http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE adresindeki diğer fonksiyonları da kullanarak tablespace ve kolon bazında disk kullanım değerlerini görebilirsiniz.
http://wiki.postgresql.org/wiki/Disk_Usage adresindeki belirtilen aşağıdaki sorguyu çalıştırarak en fazla yer kaplayan 20 veritabanını kullanım sırasına göre listeleyebilirsiniz.
Ayrıca \dt+ komutu ile de tabloların boyutlarını görebilirsiniz. Fakat burada tablo sıralaması tablo adına göre yapılmaktadır.
mail=> \dt+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+--------------------------+-------+---------+------------+-------------
public | auditlogs | table | mail | 103 MB |
public | clientlogs | table | mail | 432 kB |
public | summary | table | mail | 8192 bytes |
public | summarydays | table | mail | 400 kB |
pg_database_size fonksiyonu ile veritabanının boyutunu integer olarak alırsınız. pg_size_pretty fonksiyonu ile de bu integer değerini daha okunabilir bir formata çevirirsiniz.
mail=> select pg_size_pretty(pg_database_size('mail'));
pg_size_pretty
----------------
313 MB
(1 row)
Tek bir tablonun boyunu ise pg_relation_size fonksiyonu ile bulabilirsiniz.
mail=> select pg_size_pretty(pg_relation_size('maillog_130315'));
pg_size_pretty
----------------
480 kB
(1 row)
http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE adresindeki diğer fonksiyonları da kullanarak tablespace ve kolon bazında disk kullanım değerlerini görebilirsiniz.
http://wiki.postgresql.org/wiki/Disk_Usage adresindeki belirtilen aşağıdaki sorguyu çalıştırarak en fazla yer kaplayan 20 veritabanını kullanım sırasına göre listeleyebilirsiniz.
mail> 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;
name | owner | size
-----------+----------+---------
mail | surmail | 313 MB
webmail | surmail | 9581 kB
clouddb | postgres | 7641 kB
template1 | postgres | 6369 kB
postgres | postgres | 6369 kB
template0 | postgres | 6361 kB
(6 rows)
Ayrıca \dt+ komutu ile de tabloların boyutlarını görebilirsiniz. Fakat burada tablo sıralaması tablo adına göre yapılmaktadır.
mail=> \dt+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+--------------------------+-------+---------+------------+-------------
public | auditlogs | table | mail | 103 MB |
public | clientlogs | table | mail | 432 kB |
public | summary | table | mail | 8192 bytes |
public | summarydays | table | mail | 400 kB |