解决PostgreSQL 执行超时的情况
经研究查找,PostgreSQL有关于SQL语句执行超时和事务执行超时的相关配置,而默认超时时间是10000毫秒,即10秒钟的时间,这样会导致执行时间稍长的任务执行失败。可以通过修改PostgreSQL服务器配置文件的方式修改默认配置。PostgreSQL 9.6版本开始支持自动查杀超过指定时间的 idle in transaction 空闲事务连接,用于清理应用代码中忘记关闭已开启的事务,或者系统中存在僵死进程等。通常来说可以在SQL发起前设置事务级超时参数,SQL执行结束,重置。例子函数级超时例子 - statement_timeout不可用例如这个QUERY,我们想让它100毫秒超时。将它写到函数中,在函数中设置超时调用SQL改成这样但是这么做实际上是没有效果的,原因是statement_timeout的设计之初是为交互性SQL设计的,在postgres.c中。
用户评论