WYJAŚNIJ z sugestiami dotyczącymi indeksu


10

Czy istnieje oprogramowanie (najlepiej open source), które może analizować WYJAŚNIENIE PostgreSQL i polecić niezbędne wskaźniki, które przyspieszyłyby zapytanie?

Odpowiedzi:


6

Dosłownie znalazłem to kilka minut temu: http://explain.depesz.com/ . Wklejasz wyniki analizy EXPLAIN ANALYZE i pokazuje ona, gdzie mogą wystąpić problemy (jest nawet oznaczona kolorami).

Z sekcji pomocy ...

wyjaśnić.depesz.com jest narzędziem do znalezienia prawdziwej przyczyny powolnych zapytań. Zasadniczo można użyć zapytania EXPLAIN ANALYZE; i przeczytaj wynik. Problem polega na tym, że nie wszystkie części wyjścia są łatwo zrozumiałe dla każdego i nie zawsze jest oczywiste, czy węzeł, który wykonuje w 17,3 ms, jest szybszy czy wolniejszy niż ten, który działa w 100 ms - biorąc pod uwagę fakt, że pierwszy jest wykonywany 7 czasy. Aby skorzystać z witryny, po prostu przejdź do jej pierwszej strony i wklej tam wyjaśnij wyniki analizy z psql. Ten wynik może wyglądać tak. Po wgraniu zostaniesz przekierowany na stronę, która pokazuje parsowane i ładnie (przynajmniej miło :) koloruje, aby położyć nacisk na ważne części. Może to tak wyglądać. Uwaga dodatkowa: adres URL kolorowego wydruku jest trwały, więc możesz po prostu użyć go, aby pokazać go innym - na przykład - dla tych miłych gości na kanale irc #postgresql na freenode. Ten wykres używa 4 kolorów do oznaczenia ważnych rzeczy: białe tło - wszystko jest w porządku żółte tło - dany węzeł martwi brązowe tło - dany węzeł jest bardziej niepokojący czerwone tło - dany węzeł jest bardzo niepokojący Który kolor jest używany, wybierany jest w zależności od trybu użyjesz: „Exclusive”, „Inclusive” lub „Rows X”.


1

Nie znam żadnego narzędzia dla Postgresa, które robi to algorytmicznie, i moim zdaniem ludzki mózg (i często trochę eksperymentów w środowisku programistycznym) jest naprawdę jedynym odpowiednim narzędziem tutaj. W grę wchodzi wiele czynników, w tym to, czy planista zapytań w ogóle uzna, że ​​Twój indeks jest warty użycia - co zależy od tego, jak Twoja instalacja dostosowała ustawienia narzędzia do planowania zapytań oraz rozmiar / statystyki w zaangażowanej tabeli ( s).

Najlepszą rekomendacją, jaką mogę zrobić, jest zrobienie EXPLAIN ANALYZE( ANALYZEjest to ważne - da ci czas wykonania zapytania i podplanu), sam przejrzyj wyniki i zaatakuj największą liczbę, którą zobaczysz jako pierwszą. Prawdopodobnie mógłbyś napisać analizator składni, aby rozbić dane wyjściowe EXPLAIN (szczególnie w wersji 9.0 z danymi wyjściowymi JSON), ale nie znam nikogo, kto rozwiązałby to (to w zasadzie to, co robią optymalizatory dla MS-SQL ...)


0

Brak klasy produkcyjnej, ale dla ciekawskich istnieje / był projekt badawczy mający na celu wdrożenie czegoś takiego. Wyszukaj „Doradca indeksu PostgreSQL”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.