Czy istnieje sposób monitorowania postępu tworzenia indeksu w PostgreSQL. Tworzę indeks na dużym stole i chciałbym zobaczyć, jak szybko to się dzieje.
Czy istnieje sposób na monitorowanie tego?
postgresql
index
myahya
źródło
źródło
Odpowiedzi:
Zgodnie ze stroną utrzymania indeksu Postgres Wiki , możesz sprawdzić aktualny stan wszystkich swoich indeksów za pomocą:
Kolumna
num_rows
wskazuje liczbę wierszy objętych indeksem iindex_size
będzie rosła w miarę budowania indeksu.źródło
Tak więc nie ma dobrego sposobu, aby to zrobić, ale jeśli naprawdę musisz wiedzieć ... najpierw obliczyć ilość miejsca, jaką powinien zająć indeks, na podstawie rozmiaru danych * wierszy + narzutu. Następnie możesz użyć czegoś takiego jak pfiles lub pgtruss, aby znaleźć pliki, które są zapisywane w $ PGDATA; jeśli indeksy przekraczają 1 GB, będzie to seria plików takich jak nnnnn.n, w której pierwszy zestaw n jest spójny, a ostatnie n przyrostów dla każdego pliku GB. Gdy dowiesz się, ile plików zostało utworzonych, możesz obserwować wzrost i dowiedzieć się, jak blisko jesteś ukończenia. Szacunkowe przybliżenie, ale może to pomaga.
źródło
Nie, nie ma, nawet jeśli budujesz go w trybie KONKURENCYJNYM. Chociaż w przeszłości miałem oko na rozmiar pliku w katalogu bazy danych, nie jest to tak naprawdę przydatne, ponieważ można tylko zgadywać, jak duży będzie.
źródło
Będzie to możliwe w nadchodzącym wydaniu PostgreSQL 12 (powinno zostać wydane 3 października 2019 r.).
Zobacz dokumentację widoku pg_stat_progress_create_index i post na blogu depesz, aby uzyskać szczegółowe informacje.
źródło