ALTER EXCEPT RULE
功能描述
修改一个异常规则集合,可以修改一组规则集中的任意一个或者多个具体的规则阈值。
注意事项
使用ALTER语法添加某个新规则阈值时,WITH参数中原来的其他的规则会保留,并不是全部清空覆盖。例如原来一组规则中只有一条规则:作业排队阻塞的最大时间blocktime = 100秒,通过以下语法新添加一条作业执行最大时间elapsedtime为1000秒,则最终的规则包含2条,可参见以下示例。
语法格式
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ALTER EXCEPT RULE except_rule_name WITH ( | BLOCKTIME = VALUE, | CPUTIME = VALUE, | ELAPSEDTIME = VALUE, | CPUSKEWPERCENT = VALUE, | SPILLSIZE = VALUE, | BROADCASTSIZE = VALUE, | MEMSIZE = VALUE, | CPUAVGPERCENT = VALUE, | BANDWIDTH = VALUE, | ACTION = ['abort' | 'penalty'] ); |
参数说明
|
参数 |
描述 |
取值范围 |
|---|---|---|
|
rule_name |
异常规则集名称。 |
字符串,需符合标识符命名规范。 |
|
blocktime |
作业排队阻塞的最大时间。单位:秒。 |
数值型,-1,1~INT64_MAX。 |
|
elapsedtime |
作业执行的最大时间。单位:秒。 |
数值型,-1,1~INT64_MAX。 |
|
allcputime |
作业运行中使用的最大CPU时间。单位:秒。 |
数值型,-1,1~INT64_MAX。 |
|
cpuskewpercent |
作业执行时的CPU使用倾斜率。单位:百分比。 |
数值型,-1,1~100。 |
|
cpuavgpercent |
作业执行时的平均CPU使用率。单位:百分比。 |
数值型,-1,1~100。 |
|
spillsize |
作业执行的最大下盘大小。单位:MB。 |
数值型,-1,1~INT64_MAX。 |
|
broadcastsize |
作业执行的最大广播大小。单位:MB。 |
数值型,-1,1~INT64_MAX。 |
|
memsize |
作业执行使用的最大内存大小。单位:MB。 |
数值型,-1,1~INT64_MAX。 |
|
bandwidth |
作业执行可使用的最大网络带宽。单位:MB。 |
数值型,-1,1~INT64_MAX。 |
示例
创建异常规则except_rule1。
1
|
CREATE EXCEPT RULE except_rule_1 WITH (blocktime=2000, spillsize=3000, action=abort); |
修改异常规则except_rule1的blocktime规则阈值为3000秒,下盘空间为4000MB。
1
|
ALTER EXCEPT RULE except_rule_1 WITH (blocktime=3000, spillsize=4000); |
通过PG_EXCEPT_RULE系统表,可以查看异常规则已修改成功。
1
|
SELECT * FROM PG_EXCEPT_RULE WHERE name = 'except_rule_1'; |

同时,需要再叠加一条新规则,作业执行的最大时间elapsedtime为2000秒。
1
|
ALTER EXCEPT RULE except_rule_1 WITH (elapsedtime=2000); |
再次查看异常规则,已修改成功。注意,原先的规则会保留,并不是清空。
1
|
SELECT * FROM PG_EXCEPT_RULE WHERE name = 'except_rule_1'; |

创建一个资源池并绑定异常规则集except_rule_1。
1
|
CREATE resource pool resource_pool_a1 WITH (except_rule='except_rule_1'); |
解除资源池resource_pool_a1绑定的异常规则集。
1
|
ALTER resource pool resource_pool_a1 WITH (except_rule='None'); |