我有一个包含许多语句的 SQL 脚本,我使用 JdbcTemplate.execute() 执行这些语句。有些查询很慢,我想将整个脚本的进度写入日志。
就目前而言,我只有在所有语句完成后才会写入日志。
我有一个包含许多语句的 SQL 脚本,我使用 JdbcTemplate.execute() 执行这些语句。有些查询很慢,我想将整个脚本的进度写入日志。
就目前而言,我只有在所有语句完成后才会写入日志。
还有另一种方法可以得到你想要的。使用PostgreSQL 服务器日志。在配置文件中设置选项postgresql.conf
并重新加载,或者为每个会话设置参数,如下所示:
记录每一条 SQL 语句:
set log_statement = 'all';
或者特别寻找慢查询,例如:所有耗时超过 1000 毫秒的查询:
set log_min_duration_statement = 1000;
关于日志记录参数的手册:
log_statement(枚举)
控制记录哪些 SQL 语句。有效值为 none (off)、ddl、mod 和 all(所有语句)。
如果您记录所有内容,请记住之后将其关闭,否则日志文件可能会变得很大。
log_min_duration_statement(整数)
如果语句至少运行了指定的毫秒数,则记录每个已完成语句的持续时间。将此设置为零会打印所有语句持续时间。(...)
关于如何设置参数的手册。