功能描述
创建一个资源池,并指定此资源池相关联的控制组。
注意事项
只要用户对当前数据库有CREATE 权限,就可以创建资源池。
语法格式
CREATE 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='priority' | nodegroup='nodegroup_name' | is_foreign =
boolean }[, ... ])];
参数说明
pool_name
资源池名称。
资源池名称不能和当前数据库里已有的资源池重名。
取值范围:字符串,要符合标识符的命名规范。
group_name
控制组名称。
说明:
设置控制组名称时,语法可以使用双引号,也可以使用单引号。
group_name 对大小写敏感。
不指定group_name 时,默认指定的字符串为“Medium”
,代表指定DefaultClass 控制
组的“Medium” Timeshare 控制组。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
923
若数据库管理员指定自定义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 控制组。
取值范围:字符串,要符合说明中的规则,其指定已创建的控制组。
stmt
资源池语句执行的最大并发数量。
取值范围:数值型,-1~2147483647。
dop
资源池最大并发度,语句执行时能够创建的最多线程数量。
取值范围:数值型,1~2147483647
memory_size
资源池最大使用内存。
取值范围:字符串,内容范围1KB~2047GB
mem_percent
资源池可用内存占全部内存或者组用户内存使用的比例。
在多租户场景下,组用户和业务用户的mem_percent 范围1-100,默认为20。
在普通场景下,普通用户的mem_percent 范围为0-100,默认值为0。
说明:mem_percent 和memory_limit 同时指定时,只有mem_percent 起作用。
io_limits
资源池每秒可触发IO 次数上限。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
924
对于行存,以万次为单位计数,而列存则以正常次数计数。
io_priority
IO 利用率高达90%时,重消耗IO 作业进行IO 资源管控时关联的优先级等级。
包括三档可选:Low、Medium 和High。不控制时可设置为None。默认为None。
说明:io_limits 和io_priority 的设置都仅对复杂作业有效。
包括批量导入
(INSERT
INTO SELECT、COPY FROM、CREATE TABLE AS 等)
,单DN 数据量大约超过500MB 的
复杂查询和VACUUM FULL 等操作。
nodegroup
在逻辑集群模式下,指定逻辑集群名称。必须是存在的逻辑集群。
如果逻辑集群名称包含大写字符、特殊符号或以数字开头,SQL 语句中对逻辑集群名
称需要加双引号。
is_foreign
在逻辑集群模式下,指定当前资源池用于控制没有关联本逻辑集群的普通用户的资源。
这里的逻辑集群是由资源池nodegroup 字段指定的。
说明:
nodegroup 必须是存在的逻辑集群,不能是elastic_group 和安装的nodegroup
(group_version1)。
如果指定了is_foreign 为true,则资源池不能再关联用户,即不允许通过CREATE
USER … RESOURCE POOL 语句来将该资源池配置给用户。
该资源池自动检查用户是否关
联到资源池指定的逻辑集群,
如果用户没有关联到该逻辑集群,
则这些用户在逻辑集群所包
含的DN 上运行将受到该资源池的资源控制。
示例
本示例假定用户已预先成功创建控制组(创建控制组请参考设置控制组)
。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
925
--创建一个默认资源池,其控制组为"DefaultClass"组下属的"Medium" Timeshare Workload 控
制组。
gbase=#CREATE RESOURCE POOL pool1;
-- 创建一个资源池,
其控制组指定为"DefaultClass"组下属的"High" Timeshare Workload 控制
组。
gbase=#CREATE RESOURCE POOL pool2 WITH (CONTROL_GROUP="High");
-- 创建一个资源池,其控制组指定为"class1"组下属的"Low" Timeshare Workload 控制组。
gbase=#CREATE RESOURCE POOL pool3 WITH (CONTROL_GROUP="class1:Low");
-- 创建一个资源池,其控制组指定为"class1"组下属的"wg1" Workload 控制组。
gbase=#CREATE RESOURCE POOL pool4 WITH (CONTROL_GROUP="class1:wg1");
-- 创建一个资源池,其控制组指定为"class1"组下属的"wg2" Workload 控制组。
gbase=#CREATE RESOURCE POOL pool5 WITH (CONTROL_GROUP="class1:wg2:3");
--删除资源池。
gbase=#DROP RESOURCE POOL pool1;
gbase=#DROP RESOURCE POOL pool2;
gbase=#DROP RESOURCE POOL pool3;
gbase=#DROP RESOURCE POOL pool4;
gbase=#DROP RESOURCE POOL pool5;
相关命令
ALTER RESOURCE POOL,DROP RESOURCE POOL