将所有postgres数据库的查询超时设置为60分钟

问题描述

我必须将Postgres数据库的查询超时设置为60分钟。我在下面有Postgres数据库的配置文件。

  1. pg_ctl.conf
  2. pg_hba.conf
  3. pg_ident.conf
  4. postgresql.conf
  5. start.conf

在postgresql.conf文件中,我看到有字段;

#statement_timeout = 0      # in milliseconds,0 is disabled
#lock_timeout = 0           # in milliseconds,0 is disabled

我的问题是,我需要取消注释/设置60分钟的哪个字段?

有人请帮忙吗?还是我需要在配置文件中添加其他内容?

谢谢。

解决方法

要为查询超时设置全局默认值,请使用statement_timeout,例如

statement_timeout = 60min

Quote from the manual

中止所有花费时间超过指定时间的语句。 [...]如果不带单位指定此值,则以毫秒为单位。零(默认值)将禁用超时。
超时是从命令到达服务器的时间到服务器完成命令为止的时间。

如果您只想对特定用户执行此操作,则不必全局(对每个用户)执行此操作:

alter user the_user_to_control 
    set statement_timeout = '60min';

这将更改当前数据库中指定用户的值。如果确实在每个数据库中都需要它,则将需要在每个数据库中运行该语句。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...