PostgreSQL中出现执行超时如何解决

  介绍

这篇文章将为大家详细讲解有关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。参看

 PostgreSQL中出现执行超时如何解决

修改参数

进入第六编辑界面,可以通过vi查找命令定位到相关参数,修改成合适的时间,保存退出。

:/statement_timeout

 PostgreSQL中出现执行超时如何解决

重启配置

通过以下命令,查找pg_ctl的位置,然后执行pg_ctl重载重新加载配置。

find /, -name “pg_ctl"/usr/pgsql - 9.6 -/- bin/pg_ctl 重载

 PostgreSQL中出现执行超时如何解决

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;

将它写到函数中,在函数中设置超时

PostgreSQL中出现执行超时如何解决