如何在单个JdbcTemplate execute()和PostgreSQL中记录多个sql查询的进度

时间:2011-09-23 11:03:10

标签: java sql postgresql logging jdbctemplate

我有一个SQL脚本,其中包含许多使用JdbcTemplate.execute()执行的语句。有些查询很慢,我想将整个脚本的进度写入日志。

就目前而言,只有在所有陈述完成后才会写入日志。

1 个答案:

答案 0 :(得分:1)

还有另一种方法可以获得你想要的东西。使用 PostgreSQL服务器日志。在配置文件postgresql.conf中设置选项并重新加载,或者为每个会话设置参数,如下所示:

记录每个SQL语句:

set log_statement = 'all';

或者特别寻找慢查询,例如:所有花费超过1000毫秒的事情:

set log_min_duration_statement = 1000;

关于logging-parameters的手册:

  

log_statement(enum)

     

控制记录哪些SQL语句。有效值为none(off),ddl,mod和all(所有语句)。

如果您记录了所有内容,请记得以后将其关闭,否则日志文件可能会变得很大。

  

log_min_duration_statement(整数)

     

如果语句至少运行指定的毫秒数,则会记录每个已完成语句的持续时间。将此值设置为零将打印所有语句持续时间。 (...)

how to set parameters上的手册。