PDA

Ver la Versión Completa : SQL Profiler en Postgresql ?


santi33a
11-04-2012, 19:19:29
Hola existe algo similar en Postgresql parecido a SQL Profiler en MSSQL Server?
gracias

mamcx
11-04-2012, 21:54:26
http://www.postgresql.org/docs/9.1/static/sql-explain.html

Todo lo que debes saber:

http://wiki.postgresql.org/wiki/Using_EXPLAIN

santi33a
13-04-2012, 19:06:42
mamcx, no se si me hago explicar o no entendí lo que dice ahí, lo que necesito saber es por ejemplo, todas las consultas que llegan a mi servidor posgresql desde una pc, o las consultas que le hacen a una base de datos. y muchas gracias.

white_zombie
13-04-2012, 21:46:42
Hola, Postgresql tiene un sistema de Logs bastante bueno, creo que lo que buscas es log_statement, mira los siguientes enlaces

http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-STATEMENT

http://pgfouine.projects.postgresql.org/reports.html

http://ptop.projects.postgresql.org/


Un Saludo.

santi33a
18-04-2012, 14:54:50
Gracias white_zombie, pero por mucho que lo he intentado no he logrado que me de los logs de las consultas que le hago desde mi pc, tan solo me muestra en los logs los errores, si me pudieras ayudar mas o darme algún link donde den una explicación mas detallada a ver si logro avanzar te lo agradecería.
Santiago

white_zombie
18-04-2012, 16:48:28
Hola,

Has leído este link (http://www.postgresql.org/docs/9.1/static/runtime-config-logging.html) completo?

No me queda claro si has seguido los pasos que indican y no lo has conseguido o no sabes como activarlo? Bueno en cualquier caso te explico los pasos a seguir. El log que necesitas es log_statement, por defecto no viene activado, para activarlo tienes que editar el archivo postgresql.conf, te recomiendo que lo hagas con el pgAdmin para evitar errores. El proceso seria el siguiente:

- Abrir con PgAdmin el fichero postgresql.conf que se encuentra en la misma ruta que los datos de tu BD.
- Asegurate que tienes activados log_destination y logging_collector.
- Activa log_statement y pon como valor all

Los logs los crea en la carpeta pg_log, no estoy 100% seguro ahora mismo pero creo que hace falta reiniciar Postgresql para que funcione. Las consultas que contengas no se guardan porque el proceso de guardado se hace después de pasar por el parser.

Espero que esto te sirva.

Un Saludo.

santi33a
18-04-2012, 19:10:16
Hola white_zombie y muchas gracias otra vez, si lo leí pero mi ingles no es tan bueno luego que tu me lo aclaraste lo entendí mejor incluso configuré otra opcion que es log_line_prefix, ahora es posible filtrar esos logs?, por ejemplo si quiero decirle solo dame los logs de las conexiones de una ip en especifico, o de un user que yo necesite?

white_zombie
18-04-2012, 22:37:53
Para filtrar puedes hacerlo activando log_statement por usuario o incluso por base de datos, por IP no se si se puede hacer. Para activarlo en un usuario determinado por ejemploALTER USER name SET log_statement = 'all';
Tambien puedes activarlo desde pgAdmin en la pestaña variables del usuario o de la DB.

No se si con esto cubres tus necesidades.

Por cierto en mi anterior mensaje, en esta frase me he comido una palabra.Las consultas que contengas no se guardan porque el proceso de guardado se hace después de pasar por el parser.

Quería decir que las consultas que contengan errores no se guardan porque el proceso de guardado se hace después de pasar por el parser.

Un Saludo.

santi33a
19-04-2012, 14:08:25
muchas gracias a todos, sin su ayuda me sería algo difícil adelantar pues tanto en Lazarus como en Postgressql soy nuevo y he pasado un poco de trabajo pues vengo de MS SQL y Delphi y ya estaba acostumbrado a muchas cosas que en esos sistemas es mucho mas facil de hacer, espero el cambio valga la pena, no lo digo por los sistemas sino que pueda llegar a construir algo que se pueda usar, jajaj.