PostgreSQL umożliwia rejestrowanie powolnych zapytań do pliku dziennika lub tabeli. Analiza tych dzienników pomoże Ci łatwo określić, które zapytania spowalniają Twoją bazę danych. Oto kroki umożliwiające włączenie powolnego dziennika zapytań w PostgreSQL. Możesz ich również użyć, aby włączyć powolne logowanie zapytań w RDS, Redshift i innych bazach danych PostgreSQL.
Jak włączyć logowanie wolnych zapytań w PostgreSQL
Możesz zidentyfikować wolne zapytania w PostgreSQL, po prostu modyfikując kilka ustawień w postgresql.conf plik
1. Znajdź lokalizację postgresql.conf
Otwórz terminal i uruchom następujące polecenie, aby znaleźć lokalizację pliku postgresql.conf dla swojej bazy danych.
$ find / -name postgresql.conf
/etc/postgresql/9.1/main/postgresql.conf
Przeczytaj bonus:Zmaterializowany widok PostgreSQL
2. Otwórz postgresql.conf
Uruchom następujące polecenie, aby otworzyć plik postgresql.conf w edytorze tekstu
$ vi /etc/postgresql/9.1/main/postgresql.conf
Przeczytaj bonus:Jak uzyskać ostatni rząd na grupę w PostgreSQL
3. Włącz logowanie powolnych zapytań w PostgreSQL
Wyszukaj następujący wiersz
#log_min_duration_statement = -1
Odkomentuj go, usuwając # na jego początku. Zastąp również -1 progiem czasu wykonywania zapytania w milisekundach. Na przykład, jeśli chcesz rejestrować zapytania, których wykonanie trwa dłużej niż 1 sekundę, zamień -1 na 1000
log_min_duration_statement = 1000
Zapisz i wyjdź z pliku
Poszukaj także następującej linii:
logging_collector = on
Upewnij się, że logging_collector jest ustawiony na włączony .
Przeczytaj bonus:Jak utworzyć histogram w PostgreSQL
4. Znajdź dziennik powolnych zapytań
Znajdziesz również inną zmienną w postgresql.conf
log_directory = 'pg_log'
Oznacza to, że plik dziennika PostgreSQL znajduje się w /var/lib/pgsql/data/pg_log/
5. Zrestartuj bazę danych PostgreSQL
Uruchom następujące polecenie, aby ponownie uruchomić PostgreSQL
Ubuntu/Debian
$ sudo systemctl restart postgresql
CentOS/Redhat
# /etc/init.d/postgresql restart
Mamy nadzieję, że powyższy artykuł pomoże Ci rejestrować wolne zapytania w PostgreSQL.