Bazy danych dotyczą zapytań. Przechowujesz w nich swoje dane, a następnie musisz je w jakiś sposób odzyskać. Nadchodzą zapytania - piszesz je w jakimś języku, ustrukturyzowanym lub nie, w ten sposób określasz, jakie dane chcesz pobrać. Najlepiej byłoby, gdyby te zapytania były szybkie, w końcu nie chcemy czekać na nasze dane. Istnieje wiele narzędzi, które pozwalają zrozumieć, jak zachowują się Twoje zapytania i jak działają. W tym poście na blogu porównamy pgDash i ClusterControl. W obu przypadkach wydajność zapytań to tylko część funkcjonalności. Bez dalszych opłat przyjrzyjmy się im.
Co to jest pgDash?
pgDash to narzędzie przeznaczone do monitorowania PostgreSQL, a monitorowanie wydajności zapytań jest jedną z dostępnych funkcjonalności.

pgDash wymaga pg_stat_statements do pobrania danych. Możliwe jest pokazanie zapytań na podstawie bazy danych. Możesz zdefiniować, które kolumny mają być widoczne (domyślnie niektóre z nich nie są wyświetlane, aby dane były bardziej czytelne). Możesz zobaczyć wiele typów danych, takich jak czas wykonania (średni, maksymalny, minimalny, całkowity), ale także informacje o blokach tymczasowych, dostępnych wierszach, dostępie do dysku i trafieniu w bufor. Daje to dobry wgląd w to, jak dane zapytanie działa i co może być przyczyną, dla którego nie działa ono w sposób wydajny. Możesz sortować dane za pomocą dowolnej kolumny, szukając zapytań, które na przykład są najwolniejsze lub zapisują najbardziej tymczasowe bloki.
W razie potrzeby możesz wyszukać zapytania wykonane w określonym przedziale czasu.


Z dokładnością do jednej minuty.
Dla każdego zapytania na liście możesz kliknąć i zobaczyć bardziej szczegółowe statystyki.



Możesz zobaczyć dokładne zapytanie, niektóre dane na jego temat (dostęp do dysku, dostęp do wspólnego bufora, czasowo blokuje dostęp). Możliwe jest również włączenie testowania i przechowywania planu wykonania zapytań. Wreszcie możesz zobaczyć wykresy pokazujące, jak wydajność zapytania zmieniała się w czasie.
Ogólnie rzecz biorąc, pgDash zapewnia dobry wgląd w metryki wydajności zapytań w PostgreSQL.
ClusterControl Monitorowanie i zarządzanie zapytaniami PostgreSQL
ClusterControl jest dostarczany z Query Monitor, który ma na celu dać użytkownikom wgląd w wydajność ich zapytań. Query Monitor może być używany dla PostgreSQL, ale także dla MySQL i Galera Cluster.

ClusterControl wyświetla dane zagregowane we wszystkich bazach danych i hostach w klastrze. Lista zapytań zawiera informacje o metrykach związanych z wydajnością. Liczba wystąpień, zbadane wiersze, tabele tymczasowe, maksymalny, średni i całkowity czas wykonania. Listę można sortować według niektórych kolumn (wystąpienia, maks., średnia, odchylenie standardowe i całkowity czas wykonania).

Każde zapytanie można kliknąć, wyświetla pełny tekst zapytania, niektóre dodatkowe szczegóły i ogólne wskazówki dotyczące optymalizacji.
ClusterControl jest również dostarczany z modułem Query Outliers.

Jeśli są jakieś zapytania, które odbiegają od średniej wydajności tego konkretnego zapytania wpisz, zostaną one pokazane w tej sekcji, co pozwoli użytkownikowi lepiej zrozumieć, które zapytania zachowują się niespójnie i spróbować znaleźć główną przyczynę tego.
Wskaźniki tabeli i indeksu PostgreSQL
Oprócz danych bezpośrednio związanych z wydajnością zapytań, oba narzędzia dostarczają informacji o innych elementach wewnętrznych, które mogą wpływać na wydajność zapytań.
pgDash ma sekcję „Narzędzia”, w której możesz zbierać informacje o indeksach, rozmiarze tabeli i rozdęciu:

Podobne dane są dostępne w ClusterControl, w Statystykach zapytań:

Możliwe jest sprawdzenie statystyk I/O dla tabeli i indeksów, rozdęcie tabel i indeksów, nieużywane lub zduplikowane indeksy. Możesz również sprawdzić, które tabele są częściej dostępne za pomocą skanowania indeksowego lub sekwencyjnego. Możesz również sprawdzić rozmiar największych tabel i baz danych.
Wnioski
Mamy nadzieję, że ten krótki blog daje wgląd w porównanie ClusterControl z pgDash w zakresie funkcji związanych z wydajnością zapytań. Należy pamiętać, że ClusterControl jest przeznaczony nie tylko do pomocy w monitorowaniu wydajności, ale także do budowania i wdrażania stosów HA dla wielu baz danych Open Source, zarządzania konfiguracją, definiowania i wykonywania harmonogramów tworzenia kopii zapasowych i wielu innych funkcji. Jeśli interesuje Cię ClusterControl, możesz go pobrać bezpłatnie.