GaussDB-ALTER RESOURCE POOL

51 阅读4分钟

GaussDB-ALTER RESOURCE POOL

功能描述

修改一个资源池,指定其他控制组。

注意事项

只有sysadmin或初始用户才能执行此操作。

语法格式

| ``` ALTER RESOURCE POOL pool_name WITH ({MEM_PERCENT= pct | CONTROL_GROUP="group_name" | ACTIVE_STATEMENTS=stmt | MAX_DOP = dop | MEMORY_LIMIT="memory_size" | io_limits=io_limits | io_priority="io_priority" | max_workers=max_workers | max_connections=max_connections | max_dynamic_memory="max_dynamic_memory" | max_shared_memory="max_shared_memory" | max_concurrency=concurrency}[, ... ]);

| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f22c200251454f949cf70b9c8bd8ab1b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1774922292&x-signature=Oi9YUpsSH5b%2Bc9pIlh1iWDsxE4E%3D)

#### 参数说明

-   **pool_name**

    资源池名称。

    资源池名称为已创建的资源池。

    取值范围:字符串,要符合[标识符命名规范](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0321.html#ZH-CN_TOPIC_0000001865746364__zh-cn_topic_0000001704458709_section14873217506)。

-   **group_name**

    控制组名称。

    ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/169ad3bd67b24eff9e9d72348fa5c71a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1774922292&x-signature=s4mD2pqO%2Bs7vm9vjsGjZKu5MXIs%3D)

    -   设置控制组名称时,语法可以使用双引号,也可以使用单引号。
    -   group_name对大小写敏感。
    -   不指定group_name时,默认指定的字符串为 "Medium",代表指定DefaultClass控制组的"Medium" Timeshare控制组。
    -   若数据库管理员指定自定义Class组下的Workload控制组,如control_group的字符串为:"class1:workload1";代表此资源池指定到class1控制组下的workload1控制组。也可同时指定Workload控制组的层次,如control_group的字符串为:"class1:workload1:1"。
    -   若数据库用户指定Timeshare控制组代表的字符串,即"Rush"、"High"、"Medium"或"Low"其中一种,如control_group的字符串为"High";代表资源池指定到DefaultClass控制组下的"High" Timeshare控制组。
    -   多租户场景下,组资源池关联的控制组为class级别,业务资源池关联Workload控制组。且不允许在各种资源池间相互切换。

    取值范围:已创建的控制组。

-   **dop**

    资源池最大并发度,语句执行时能够创建的最多线程数量。

    取值范围:数值型,1~2147483647‬。

-   **memory_size**

    资源池最大使用内存。

    取值范围:字符串,内容范围1KB~2047GB,单位大小写敏感。

-   **mem_percent**

    资源池可用内存占全部内存或者组用户内存使用的比例。

    在多租户场景下,组用户和业务用户的mem_percent范围为1-100的整数,默认为20。

    在普通场景下,普通用户的mem_percent范围为0-100的整数,默认值为0。

    ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/619ca2885c364061aea06ac776b1b9c6~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1774922292&x-signature=EomD%2FLz2OdXPBSd85Ei2%2FZVsYqg%3D)

    mem_percent和memory_limit同时指定时,只有mem_percent起作用。

-   **io_limits**

    资源池每秒可触发IO次数上限,0表示不限制IO次数。

    以万次为单位计数。

    取值范围:数值型,0~2147483647

-   **io_priority**

    IO利用率高达90%时,重消耗IO作业进行IO资源管控时关联的优先级等级。

    包括三档可选:Low、Medium和High。不控制时可设置为None,默认为None。

    取值范围:枚举型,可选项为:None、Low、Medium和High。

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6443442de9644e04a86e297753194ec4~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1774922292&x-signature=xFQLwzKiv4zwKcwQae4caMdT1kg%3D)

io_limits和io_priority的设置都仅对复杂作业有效。包括批量导入(INSERT INTO SELECT, COPY FROM, CREATE TABLE AS等),单DN数据量大约超过500MB的复杂查询和VACUUM FULL等操作。

-   **max_workers**

    只用于扩容的接口,表示扩容数据重分布时,表内插入并发度。

-   **max_connections**

    最大连接数,用来限制资源池可使用的最大连接数。

    ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/29a5d74d46ff4a9e8e513af2665880f8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1774922292&x-signature=%2FQj0ZZni%2B0GwOd0uAlQetR04ywI%3D)

    所有资源池的最大连接数加起来不能超过整个gaussdb进程设置的guc参数max_connections指定的最大连接数。

<!---->

-   **max_dynamic_memory**

    最大动态内存值,用来限制资源池允许使用的最大动态内存值。

-   **max_shared_memory**

    最大共享内存值,用来限制资源池允许使用的最大共享内存值。

-   **max_concurrency**

    最大并发数,用来限制资源池允许使用的最大并发数。

#### 示例

本示例假定用户已成功创建自定义的class1控制组及其下属的Low、wg1、wg2 三个Workload控制组。若需创建控制组请联系管理员处理。

| ```
--创建一个资源池。 gaussdb=# CREATE RESOURCE POOL pool1;  --更新一个资源池,其控制组指定为"DefaultClass"组下属的"High" Timeshare Workload控制组。 gaussdb=# ALTER RESOURCE POOL pool1 WITH (CONTROL_GROUP="High");  --更新一个资源池,其控制组指定为"class1"组下属的"Low" Timeshare Workload控制组。 gaussdb=# ALTER RESOURCE POOL pool1 WITH (CONTROL_GROUP="class1:Low");  --更新一个资源池,其控制组指定为"class1"组下属的"wg1" Workload控制组。 gaussdb=# ALTER RESOURCE POOL pool1 WITH (CONTROL_GROUP="class1:wg1");  --更新一个资源池,其控制组指定为"class1"组下属的"wg2" Workload控制组。 gaussdb=# ALTER RESOURCE POOL pool1 WITH (CONTROL_GROUP="class1:wg2:3");   --删除资源池pool1。 gaussdb=# DROP RESOURCE POOL pool1; 
``` |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

#### 相关链接

[7.13.8.37-CREATE RESOURCE POOL](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0560.html#ZH-CN_TOPIC_0000001865745840),[7.13.9.29-DROP RESOURCE POOL](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0611.html#ZH-CN_TOPIC_0000001911665829)

更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>