SET SESSION RUNTIMECAP

设置查询和存储过程可以在给定会话中运行的最长时间。如果查询或存储过程超出其会话的 RUNTIMECAP,Vertica 将终止它并返回错误。不能将 RUNTIMECAP 增加到超出用户配置文件中设置的限制。

语法

SET SESSION RUNTIMECAP duration

参数

duration
指定给定查询可以在当前会话中运行的时间,为以下几项之一:
  • NONE (默认值):移除所有当前会话查询的运行时限制。

  • 'interval':将当前会话查询的最长运行时间指定为间隔,最长为一年,例如,1 minute100 seconds

  • =DEFAULT:将此会话中查询的最长运行时间设置为用户的 RUNTIMECAP 值。

特权

  • 超级用户可以将会话 RUNTIMECAP 增加到任意值。

  • 非超级用户只能将会话 RUNTIMECAP 设置为不大于自己的用户 RUNTIMECAP 的值。

示例

将当前会话的最大查询运行时设置为 10 分钟: 

=> SET SESSION RUNTIMECAP '10 minutes';

将会话 RUNTIMECAP 恢复为您的用户默认设置:

=> SET SESSION RUNTIMECAP =DEFAULT;
SET
=> SHOW RUNTIMECAP;
    name    |  setting
------------+-----------
 runtimecap | UNLIMITED
(1 row)

将 RUNTIMECAP 设置为 1 SECOND 并使用无限循环运行匿名过程

=> SET SESSION RUNTIMECAP '1 SECOND';
SET

=> DO $$
BEGIN
    LOOP
    END LOOP;
END;
$$;

ERROR 0:  Query exceeded maximum runtime
HINT:  Change the maximum runtime using SET SESSION RUNTIMECAP

另请参阅