Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在单个JdbcTemplate execute()和PostgreSQL中记录多个sql查询的进度_Java_Sql_Postgresql_Logging_Jdbctemplate - Fatal编程技术网

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

Java 如何在单个JdbcTemplate execute()和PostgreSQL中记录多个sql查询的进度,java,sql,postgresql,logging,jdbctemplate,Java,Sql,Postgresql,Logging,Jdbctemplate,我有一个包含许多语句的SQL脚本,我使用JdbcTemplate.execute()执行这些语句。有些查询很慢,我想将整个脚本的进度写入日志 目前,我只会在所有语句完成后才编写日志。还有另一种方法可以得到您想要的。使用PostgreSQL server日志。在配置文件postgresql.conf中设置选项并重新加载,或按如下方式设置每个会话的参数: 记录每个SQL语句: set log_statement = 'all'; 或者特别搜索慢速查询,例如:所有需要超过1000毫秒的查询: set

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


目前,我只会在所有语句完成后才编写日志。

还有另一种方法可以得到您想要的。使用PostgreSQL server日志。在配置文件
postgresql.conf
中设置选项并重新加载,或按如下方式设置每个会话的参数:

记录每个SQL语句:

set log_statement = 'all';
或者特别搜索慢速查询,例如:所有需要超过1000毫秒的查询:

set log_min_duration_statement = 1000;
该手册涉及:

log_语句(枚举)

控制记录哪些SQL语句。有效值包括none(关闭)、ddl、mod和all(所有语句)

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

log\u min\u duration\u语句(整数)

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


关于.

DB是Postgres的手册,我已将问题更新为更具体的问题。我不明白您是用一个包含所有语句的巨大sting只调用了一次
execute
,还是调用了几次
execute
。execute是用所有语句只调用一次。这就是问题所在。如果我分别打电话给每个人,我可以看到记录的语句的进度。谢谢你的建议,但我无法访问服务器端日志。我需要一个客户端的解决方案,如果可能的话。