为查询设置运行时限制
可以为允许查询运行的时间长度设置限制。您可以将此限制设置为三个级别,按优先级降序排列:
-
要将用户分配到的资源池。
-
具有
RUNTIMECAP
(由CREATE USER
/ALTER USER 配置)的用户配置文件ALTER USER
-
会话查询(由 SET SESSION RUNTIMECAP 设置)
SET SESSION RUNTIMECAP
在所有情况下,您都可以使用不超过一年的 interval 值设置运行时限制。在多个级别设置运行时限制时,Vertica 始终使用最短的值。如果为非超级用户设置了运行时限制,则该用户无法将任何会话设置为更长的运行时限制。超级用户可以将其他用户和他们自己的会话的运行时限制设置为不超过一年(包含)的任意值。
示例
user1
被分配至 ad_hoc_queries
资源库:
=> CREATE USER user1 RESOURCE POOL ad_hoc_queries;
user1
的 RUNTIMECAP
设置为 1 小时。
=> ALTER USER user1 RUNTIMECAP '60 minutes';
ad_hoc_queries
资源池的 RUNTIMECAP
设置为 30 分钟。
=> ALTER RESOURCE POOL ad_hoc_queries RUNTIMECAP '30 minutes';
在本例中,如果 user1
的查询超过 30 分钟,Vertica 会终止这些查询。尽管 user1
的运行时间限制设置为一小时,但运行查询的池(具有 30 分钟的运行时间限制)具有优先权。
注意
如果使用CASCADE TO
函数为 ad_hoc_queries
池指定了一个辅助池,则当查询超过 ad_hoc_queries
池上的 RUNTIMECAP
时,就会在该辅助池上执行查询。