Przychodzę do Postgres z Oracle i szukam sposobu, aby znaleźć rozmiar tabeli i indeksu pod względem bytes/MB/GB/etc
lub nawet lepiej rozmiaru dla wszystkich tabel. W Oracle miałem paskudne, długie zapytanie, które sprawdzało user_lobs i user_segments, aby dać odpowiedź.
Zakładam, że w Postgres jest coś, czego mogę użyć w information_schema
tabelach, ale nie widzę gdzie.
postgresql
mmrobiny
źródło
źródło
Odpowiedzi:
Wypróbuj funkcje rozmiaru obiektu bazy danych . Przykład:
Dla wszystkich tabel coś w stylu:
Edycja: Oto zapytanie przesłane przez @phord, dla wygody:
Zmodyfikowałem go nieznacznie, aby używać go
pg_table_size()
do uwzględniania metadanych i sumowania rozmiarów.źródło
'"' || table_schema || '"."' || table_name || '"'
naformat('%I.%I', table_schema, table_name)
.Pokaż rozmiary baz danych:
\l+
na przykład
Pokaż rozmiary tabel:
\d+
na przykład
Działa tylko w
psql
.(Podsumowanie odpowiedzi @ zkutch .)
źródło
\dti+
sprawę.Jeśli nazwa bazy danych to
snort
, poniższe zdanie nadaje jej rozmiar:źródło
dbsize
.Tyr this: (Rozmiar indeksu / statystyki użytkowania)
źródło
Tabele PostgreSQL mają trzy komponenty: samą tabelę, wszelkie zawarte w niej indeksy i potencjalnie dane TOAST. Na http://wiki.postgresql.org/wiki/Disk_Usage jest kilka przykładów pokazujących, jak przesuwać i kroić dostępne informacje na różne sposoby
źródło
Dla informacji otrzymałem doskonałą odpowiedź od @aib i zmodyfikowałem ją trochę dla:
W widoku zmaterializowanym możemy użyć indeksu do jednoczesnego odświeżania widoków zmaterializowanych , co pozwala na ich wykorzystanie podczas aktualizacji.
Cóż, moje zapytanie będzie następujące:
źródło
Poniższe zapytanie będzie ci służyć
Zobacz ten link: https://wiki.postgresql.org/wiki/Disk_Usage
źródło
sprawdź tę wiki. https://wiki.postgresql.org/wiki/Disk_Usage
źródło
Wypróbuj ten skrypt, aby znaleźć wszystkie rozmiary tabeli:
Aby znaleźć inny skrypt, aby znaleźć rozmiar w PostgreSQL, odwiedź ten adres URL: http://www.dbrnd.com/2015/05/how-to-find-size-of-database-and-table-in-postgresql/
źródło