Moja aplikacja bazy danych uruchamia wiele różnych zapytań. Mam ustawiony log_min_duration_statement
na 1000. Ale zapytań zalogowany nie zawsze są powolne, większość czasu po prostu potrwać kilka ms.
Czy można uzyskać statystyki wszystkich zapytań i jak często trwały dłużej niż 1000 ms?
postgresql
performance
użytkownik2047809
źródło
źródło
Odpowiedzi:
Zainstaluj rozszerzenie pg_stat_statements za pomocą polecenia SQL
CREATE EXTENSION pg_stat_statements
Możesz się upewnić, że utworzysz to za pomocą odpowiedniego użytkownika (takiego jak użytkownik aplikacji lub konto dba). Pamiętaj, że każdy użytkownik, który utworzy to rozszerzenie, będzie również jego właścicielem.
Będzie to wymagało ponownego uruchomienia serwera, aby był użyteczny (ponieważ musisz zmienić konfigurację w postgresql.conf trochę, co wpływa na zużycie pamięci), ale da ci statystyki dotyczące wszystkich zapytań.
Zobacz stronę dokumentacji, aby uzyskać więcej informacji o tym, co zapewnia pg_stat_statements. Zobacz tutaj, aby uzyskać szybkie odniesienie do konfiguracji pliku konfiguracyjnego postgresql.conf dla pg_stat_statements.
Po zainstalowaniu i uruchomieniu można wyświetlić statystyki, sprawdzając widok pg_stat_statements.
źródło
Jak @JoishiBodio powiedział, że możesz użyć
pg_stat_statements
rozszerzenia, aby zobaczyć statystyki powolnych zapytań. Dla tych, którzy mają problem z instalacją (tak jak ja):Sprawdź, czy
pg_stat_statements
znajduje się na liście dostępnych rozszerzeń:Spróbuj zainstalować
postgresql-contrib
pakiet za pomocą menedżera pakietów systemowych na Debian / Ubuntu:Następnie ponownie wykonaj krok 1.
pg_stat_statements
doshared_preload_libraries
w konfiguracji PostgreSQL:przez
postgres.conf
:za pomocą argumentów wiersza poleceń (bez cudzysłowów!):
Następnie utwórz rozszerzenie w bazie danych:
źródło