Jak mogę wyświetlić listę wszystkich tabel bazy danych PostgreSQL i uporządkować je według rozmiaru ?
sql
postgresql
postgresql-9.3
nic specjalnego
źródło
źródło
\d+
wyświetli te informacje, choć nieposortowane.Odpowiedzi:
To pokazuje rozmiar wszystkich tabel w schemacie,
public
jeśli masz wiele schematów, których możesz chcieć użyć:Przykład SQLFiddle: http://sqlfiddle.com/#!15/13157/3
Lista wszystkich funkcji rozmiaru obiektów w podręczniku .
źródło
select table_schema, table_name, pg_relation_size(table_schema||'.'||table_name) from information_schema.tables order by 3;
dzięki za pomoc!select * from information_schema.tables where table_schema = 'public';
daje zero wierszy, mimo że\dn
pokazuje schemat public. Może zmiana w 9.5 spowodowała to?To pokaże ci nazwę schematu, nazwę tabeli, ładny rozmiar i rozmiar (potrzebne do sortowania).
Buduję to na podstawie rozwiązań z tutaj listy schematów z rozmiarami (względnymi i bezwzględnymi) w bazie danych PostgreSQL
źródło
To będzie bardziej jasne.
pg_size_pretty(<numeric_value>)
- konwertuje liczbę bajtów na format czytelny dla człowieka.pg_database_size(<db_name>)
- pobiera rozmiar bazy danych w bajtach .pg_total_relation_size(<relation_name>)
- pobiera całkowity rozmiar tabeli i jej indeks w bajtach .pg_relation_size(<relation_name>)
- pobiera rozmiar relacji (tabela / indeks) w bajtach .pg_index_size(<relation_name>)
- pobiera rozmiar indeksu relacji w bajtach .current_database()
- pobiera aktualnie używaną bazę danych, na której jest wykonywane to zapytanie.Pytanie:
Wynik:
Format humanizowane jest w reprezentacji
bytes
,kB
,MB
,GB
, iTB
.bytes
dokB
- zaczyna się od10240 bytes
bytes
toMB
- zaczyna się od10485248 bytes
=10239.5 kB
~10 MB
bytes
toGB
- zaczyna się od10736893952 bytes
=10239.5 MB
~10 BG
bytes
toTB
- zaczyna się od10994579406848 bytes
=10239.5 GB
~10 TB
Wszystkie konwersje jednostek zaczynają się od
10 + <unit>
.Dla odniesienia - Oficjalna Dokumentacja Postgres
źródło
pobrane stąd https://wiki-bsse.ethz.ch/display/ITDOC/Check+size+of+tables+and+objects+in+PostgreSQL+database
źródło
Inna alternatywa
źródło
Musiałem dowiedzieć się, które stoły zajmują najwięcej miejsca.
Na podstawie innych odpowiedzi użyłem tego zapytania:
Otrzymuję następujący wynik:
Powinienem był kupić większy dysk SSD.
źródło
źródło