Kann ich die Ausführungszeit von Abfragen in PostgresSQL 8.4 protokollieren?

8

Ich möchte jede Abfrageausführungszeit protokollieren, die an einem Tag ausgeführt wird.

Zum Beispiel so,

%Vor%

Bitte geben Sie mir eine Richtlinie.

    
9ine 01.10.2012, 09:35
quelle

2 Antworten

22

Wenn Sie

festlegen %Vor%

in Ihrer postgresql.conf, dann sehen Sie, dass alle Anweisungen in der Postgres-Protokolldatei protokolliert werden.

Wenn Sie

aktivieren %Vor%

Dies wird auch die für jede Anweisung benötigte Zeit ausgeben. Dies ist standardmäßig deaktiviert.

Mit dem Parameter log_statement können Sie steuern, welcher Typ der Anweisung, die Sie protokollieren möchten (DDL, DML, ...)

Dies wird eine Ausgabe wie diese in der Logdatei erzeugen:

%Vor%

Weitere Details im Handbuch:

Wenn Sie eine tägliche Liste haben möchten, sollten Sie die Logdatei wahrscheinlich so konfigurieren, dass sie sich täglich dreht. Auch dies ist im Handbuch beschrieben.

    
a_horse_with_no_name 01.10.2012, 09:42
quelle
2

Ich glaube, OP hat tatsächlich nach der Ausführungsdauer gefragt, nicht nach dem Zeitstempel.

Um die Dauer in die Protokollausgabe einzubeziehen, öffnen Sie pgsql/<version>/data/postgresql.conf , suchen Sie die Zeile, die

lautet %Vor%

und ändern Sie es in

%Vor%

Wenn Sie den angegebenen Parameter nicht finden können, fügen Sie ihn einfach in eine neue Zeile in der Datei ein.

Starten Sie nach dem Speichern der Änderungen den postgresql-Dienst neu oder rufen Sie einfach

auf %Vor%

z.B.

%Vor%

um die Konfiguration neu zu laden.

    
Zoltán 20.06.2014 11:40
quelle

Tags und Links