问题描述
我必须将Postgres数据库的查询超时设置为60分钟。我在下面有Postgres数据库的配置文件。
- pg_ctl.conf
- pg_hba.conf
- pg_ident.conf
- postgresql.conf
- start.conf
#statement_timeout = 0 # in milliseconds,0 is disabled
#lock_timeout = 0 # in milliseconds,0 is disabled
我的问题是,我需要取消注释/设置60分钟的哪个字段?
谢谢。
解决方法
要为查询超时设置全局默认值,请使用statement_timeout
,例如
statement_timeout = 60min
中止所有花费时间超过指定时间的语句。 [...]如果不带单位指定此值,则以毫秒为单位。零(默认值)将禁用超时。
超时是从命令到达服务器的时间到服务器完成命令为止的时间。
如果您只想对特定用户执行此操作,则不必全局(对每个用户)执行此操作:
alter user the_user_to_control
set statement_timeout = '60min';
这将更改当前数据库中指定用户的值。如果确实在每个数据库中都需要它,则将需要在每个数据库中运行该语句。