这篇文章将为大家详细讲解有关PostgreSQL中出现执行超时如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
参数说明
statement_timeout 在statement_timeout postgresql 被用来控制语句执行时长,单位是女士。 美元,vi postgresql.conf # statement_timeout =, 0,,,,,,,,, #,毫秒,拷贝,0,is 残疾人
默认是0,表示语句可以一直执行下去。
如果设置为10000,那就意味着语句最多可以执行10000毫秒=10 s。
建议设置为0,禁用该参数。
idle_in_transaction_session_timeout
PostgreSQL 9.6版本开始支持自动查杀超过指定时间的闲置在事务空闲事务连接,用于清理应用代码中忘记关闭已开启的事务,或者系统中存在僵死进程等。
idle_in_transaction_session_timeout在PostgreSQL被用来控制事务执行时长,单位女士是
,美元vi postgresql.conf # idle_in_transaction_session_timeout =, 0,,,,,,,,, #,毫秒,拷贝,0,is 残疾人
默认是0,表示语句可以一直执行下去。超时会报致命:终止连接由于idle-in-transaction超时。
修改方法
查找配置
通过命令查找到postgresql配置文件的位置,用vi进行编辑。
find /, -name “postgresql.conf" vi /var/lib/pgsql/9.6/数据/postgresql。参看
修改参数
进入第六编辑界面,可以通过vi查找命令定位到相关参数,修改成合适的时间,保存退出。
:/statement_timeout
重启配置
通过以下命令,查找pg_ctl的位置,然后执行pg_ctl重载重新加载配置。
find /, -name “pg_ctl"/usr/pgsql - 9.6 -/- bin/pg_ctl 重载
PG_CTL用法
启动服务器
启动服务器:
,美元pg_ctl 开始
启动服务器的一个例子,等到服务器启动了才退出:
,美元pg_ctl -w 开始
服务器使用5433端口,而且不带fsync运行,使用:
,美元pg_ctl -o “-F -p 5433年“,开始
停止服务器
,美元pg_ctl 停止
使用- m选项停止服务器允许用户控制如何关闭后端。
重启服务器
这个命令几乎等于先停止服务器然后再启动它,只不过PG_CTL保存并重新使用上一次运行服务器的命令行参数。重启服务器的最简单的方法是:
,美元pg_ctl 启动
重启服务器,等待其停止和重启:
,美元pg_ctl -w 启动
使用5433端口重启并且重启后关闭fsync:
,美元pg_ctl -o “-F -p 5433年“,重启
显示服务器状态
下面是来自PG_CTL的状态输出的例子:
,美元pg_ctl statuspg_ctl:, server is running (pid: 13718) Command line 是:/usr/local/pgsql/bin/postgres & # 39; - d # 39;, & # 39;/usr/地方/pgsql/数据# 39;,& # 39;- p # 39;, & # 39; 5433 & # 39;, & # 39; - b # 39;, & # 39; 128 & # 39;
这就是在重启模式中被调用的命令行。
<>强补充:PostgreSQL设置单条SQL的执行超时,防雪崩强>
背景
设置单条SQL的执行超时,防雪崩。
通常来说可以在SQL发起前设置事务级超时参数,SQL执行结束,重置。(如果SQL异常退出,会自动重置事务级参数)
例子
开始,, ……, set local  statement_time=& # 39; 100女士# 39;,, select count(*),得到一个,,,,,这条SQL的执行时间超过100 ms则主动退出,并回滚整个事务,, set local  statement_timeout 用默认的,, ……, 结束;
函数级超时例子——statement_timeout不可用
例如这个查询,我们想让它100毫秒超时。
select count (*), as 问,,id 得到a where id<1美元,group by id;
将它写到函数中,在函数中设置超时