Używam Postgresql 9.1
Ubuntu. Dokładna wersja Postgresql jest taka, 9.1+129ubuntu1
jak pokazuje mój menedżer pakietów.
Mam 2 bazy danych, które są aktywnie używane i są używane ze zdalnego serwera.
Chcę rejestrować zapytania o długim czasie wykonywania. Ustawiłem więc następujące parametry w /etc/postgresql/9.1/main/postgresql.conf
pliku
log_min_duration_statement = 10000
log_statement = 'mod'
więc Postgresql będzie rejestrował zapytania trwające dłużej niż 10 sekund.
Ale kiedy jestem reload
w konfiguracji postgres, Postgresql zaczyna rejestrować każde zapytanie pasujące do log_statement
wartości. Że dla pewności ustawiłem czas trwania na 100 sekund
log_min_duration_statement = 100000
Ale Postgresql rejestruje każde zapytanie pasujące do log_statement
wartości, niezależnie od log_min_duration_statement
wartości.
Ustawienie wydaje log_statement
się, none
że przestaje się rejestrować.
Czy jest coś, czego mi brakowało w konfiguracji?
źródło
log_statement
więclog_min_duration_statement
powinienem działać?SELECT
,UPDATE
czy jakiś DDL), to tak.Odpowiedzi:
Byłeś blisko Twój ostatni pomysł to właściwie droga:
Wówczas żadna instrukcja nie zostanie zarejestrowana, z wyjątkiem tych, które działają dłużej niż 10 sekund - łącznie z samym ciągiem zapytania. Wydaje się, że rejestrowanie zostało zatrzymane, ponieważ 10 sekund to wysoki próg. Używam normalnie 2 sekundy, ale YMMV.
Ta pokrewna odpowiedź na SO ma więcej:
Nie można uruchomić log_min_duration_statement do działania
źródło
log_statement
jestnone
, więc nie ustawienie go lub ustawienie nanone
taki sam efekt.