2012-10-01 20 views

Odpowiedz

21

Jeśli ustawisz

log_min_duration_statement = 0 
log_statement = all 

w postgresql.conf, a następnie będzie można zobaczyć wszystkie wypowiedzi są rejestrowane w dzienniku PostgreSQL.

Jeśli włączysz

log_duration 

że wydrukuje również czas niezbędny dla każdego rachunku. Domyślnie jest to wyłączone.

Korzystanie parametr log_statement można kontrolować, które typ oświadczenia chcesz się zalogować (DDL, DML, ...)

To będzie produkować moc jak to w pliku dziennika:

 
2012-10-01 13:00:43 CEST postgres LOG: statement: select count(*) from pg_class; 
2012-10-01 13:00:43 CEST postgres LOG: duration: 47.000 ms 

Więcej szczegółów w instrukcji:

Jeśli chcesz mieć dzienną listę, prawdopodobnie chcesz skonfigurować dziennik, aby codziennie obracał. Ponownie jest to opisane w instrukcji.

+0

dziękuję! dla przewodnika Mr.a_horse_with_no_name, , ale tylko zapytanie jest logiem, kiedy zmieniłem w postgresql.conf, Czego naprawdę chcę, to zapytanie i powiązany czas wykonania. – 9ine

+0

@ 9ine: co masz na myśli, gdy "loguje się tylko zapytanie"? Właśnie o to prosiłeś: aby logować zapytania. –

+0

Mam na myśli kwerendę i związany z nią czas wykonania. – 9ine

2

Uważam, że OP faktycznie wymagał czasu realizacji, a nie znacznika czasu.

Aby uwzględnić czas na wyjściu Log, otwarty pgsql/<version>/data/postgresql.conf, znaleźć wiersz, który czyta

#log_duration = off 

i zmienić go na

log_duration = on 

Jeśli nie możesz znaleźć danego parametru, po prostu dodaj go w nowym wierszu pliku.

Po zapisaniu zmian, ponownie uruchomić usługę PostgreSQL, lub po prostu wywołać

pg_ctl reload -D <path to the directory of postgresql.conf> 

np

pg_ctl reload -D /var/lib/pgsql/9.2/data/ 

ponowne załadowanie konfiguracji.

Powiązane problemy