Spisie treści
Jest taki moment, kiedy pracujemy z bazami danych, że nie chodzi już tylko o uzyskanie informacji, które nas dotyczą, ale o to, jak je pozyskujemy, ponieważ w zależności od konstrukcji zapytania będzie to ilość zasobów, które nasze zapytanie zużywa, w tym celu PostgreSQL oferuje nam WYJAŚNIAĆ narzędzie, za pomocą którego widzimy, jak wykonuje się nasze zapytanie i wszystko, co reprezentuje.WYJAŚNIJ i WYJAŚNIJ ANALIZA
Te dwa narzędzia stanowią główną bazę przy szukaniu problemów wydajnościowych realizowanych przez nas zapytań, mimo ich użyteczności nie są niczym nowym, ponieważ zostały uwzględnione w PostgreSQL Od swoich wczesnych lat, ale nie oznacza to, że są przestarzałe czy nieaktualne, wręcz przeciwnie, dojrzały do tego, by stać się narzędziem zdolnym do tworzenia najbardziej szczegółowych raportów z wykonania zapytań, w tym wyników rzucanych przez narzędzie, które mogą być uzyskane. w formatach takich jak XML lub JSON do późniejszej analizy za pomocą innych narzędzi.
w pgAdmin mamy możliwość uzyskania wykresu wyniku WYJAŚNIAĆ dzięki czemu zamiast analizować liczby możemy zobaczyć wykres i w ten sposób łatwiej wykryć problemy zapytania i możliwości poprawy.
Różnice między WYJAŚNIJ a WYJAŚNIJ ANALIZĘ
Być może oba terminy są używane tak, jakby były tym samym, ale między nimi mamy różnice, na przykład WYJAŚNIAĆ daje nam wyobrażenie o tym, w jaki sposób planer zapytań zamierza wykonać zapytanie, ale zamiast tego go nie wykonuje WYJAŚNIJ ANALIZĘ jeśli ją wykonasz, a to daje nam porównanie oczekiwanej wydajności z rzeczywistą wydajnością uzyskaną w realizacji. Podczas uruchamiania WYJAŚNIAĆ przez pgAdmin Możemy wybrać pomiędzy WYJAŚNIJ i WYJAŚNIJ ANALIZĘ, co da nam wynik każdego z nich, gdy je wybierzemy
Zobaczmy przykład, jak korzystać z tego narzędzia, do tego będziemy używać WYJAŚNIJ ANALIZĘ, zobaczmy następujący kod:
WYJAŚNIJ ANALIZĘ WYBIERZ left (tract_id, 5) As county_code, SUM (hispanic_or_latino) As tot, SUM (white_sam) As tot_white, SUM (coalesce (hispanic_or_latino, 0) - coalesce (white_alone, 0)) AS non_white FROM GROUP census.hisp_ kod_powiatu ***** BY kod_powiatu;
Jest to bardzo proste zapytanie, w którym sumujemy pola, grupujemy i porządkujemy według jednego z pól, to co uzyskamy w wyniku analizy wydajnościowej będzie następujące:
GroupAggregate (koszt = 111,29… 151,93 wierszy = 1478) (rzeczywisty czas = 6,099… 10,194 wierszy = 14 pętli = 1) -> Sortuj (koszt = 111,29… 114,98 wierszy = 1478) (rzeczywisty czas = 5,897… 6,565 wierszy = 1478 pętli = 1) Sort Key: ("left" ((tract_id) :: text, 5)) Metoda sortowania: quicksort Pamięć: 136kB -> Seq Scan on hisp_pop (koszt = 0,00… 33,48 wierszy = 1478) (rzeczywisty czas = 0,390… 2,693 wiersze = 1478 pętli = 1) Całkowity czas działania: 10 370 ms
Jeśli włożymy trochę wysiłku w czytanie, wyniki stopniowo stają się dla nas łatwiejsze do odczytania, jednak jeśli nie mamy dużo czasu lub wynik jest bardzo obszerny, zawsze możemy zobaczyć wykres.
Jak widać szybciej wyniki zobaczyć na poziomie graficznym, idealnie jest wykorzystać oba narzędzia i uzupełnić oba punkty widzenia, to te same informacje tylko pod różnymi kątami, będą puryści, którzy tylko chcą pracować z konsolą poleceń i to jest w porządku, jednak kompleksowy specjalista od baz danych musi korzystać ze wszystkich dostępnych mu narzędzi, aby usprawnić swoją pracę.
Na tym kończymy samouczek, za pomocą tych narzędzi będziemy już w stanie wykryć przyczyny, dla których nasze zapytania nie są szybkie lub możliwości poprawy w celu optymalizacji naszego zapytania.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt