本文介绍如何设置AnalyticDB PostgreSQL版实例的SQL超时时间。

问题描述

SQL执行超过3小时后失败了,返回了如下报错信息:

ERROR:  canceling statement due to statement timeoutTime: 10801445.540 ms (03:00:01.446)

问题原因

AnalyticDB PostgreSQL版的默认SQL超时时间为3小时,超过3小时的SQL将被终止。

解决方法

AnalyticDB PostgreSQL版提供了statement_timeout参数,用于修改SQL超时时间。您可以以下来修改statement_timeout参数值:

  • 通过控制台修改(实例级别):
    1. 登录云原生数据仓库AnalyticDB PostgreSQL版控制台
    2. 在控制台左上角,选择实例所在地域。
    3. 找到目标实例,单击实例ID。
    4. 在左侧导航栏中,单击参数配置
    5. 参数配置页面,找到statement_timeout参数,单击运行值列的参数修改图标。
    6. 输入目标参数值。
      • 取值范围为0~2147483647。
      • 0表示关闭SQL超时功能。
      • 单位为毫秒(ms)。
      说明 建议SQL超时时间大于1分钟(60000毫秒),避免SQL超时时间对其它任务产生影响。
    7. 单击确定
    8. 单击页面右上方的提交
    9. 参数修改对话框中,单击确定
  • 通过SQL语句修改(会话级别):
    SET statement_timeout = 0;
  • 通过SQL语句修改(用户级别):
    ALTER ROLE <username> SET statement_timeout TO 600000;
    说明 请将username替换成需要设置SQL语句超时时间的数据库账号。