2012-10-01 9 views

Respuesta

21

Si establece

log_min_duration_statement = 0 
log_statement = all 

en su postgresql.conf, a continuación, verá todas las declaraciones que se registran en el archivo de registro de Postgres.

Si habilita

log_duration 

que también imprimirá el tiempo necesario para que cada declaración. Esto está desactivada por defecto.

Utilizando el parámetro log_statement puede controlar qué tipo de la declaración que desea iniciar sesión (DDL, DML, ...)

Esto producirá una salida como esta en el archivo de registro:

 
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 

Más detalles en el manual:

Si desea una lista de todos los días, es probable que desee configurar el archivo de registro para girar sobre una base diaria. Nuevamente esto se describe en el manual.

+0

gracias! para la guía Mr.a_horse_with_no_name, pero solo la consulta se registra cuando cambié en postgresql.conf, lo que realmente quiero es la consulta y el tiempo de ejecución relacionado. – 9ine

+0

@ 9ine: ¿qué quiere decir con "solo consulta es log"? Eso es lo que pediste: registrar consultas. –

+0

Me refiero a la consulta y al tiempo de ejecución relacionado. – 9ine

2

Creo que OP realmente estaba pidiendo la duración de la ejecución, no la fecha y hora.

Para incluir la duración de la salida del registro, abierta pgsql/<version>/data/postgresql.conf, encontrar la línea que dice

#log_duration = off 

y el cambio a

log_duration = on 

Si no puede encontrar el parámetro dado, simplemente agréguelo en una nueva línea en el archivo.

Después de guardar los cambios, reinicie el servicio de PostgreSQL, o simplemente invocar

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

por ejemplo,

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

para volver a cargar la configuración.

Cuestiones relacionadas