温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Greenplum -- 资源队列管理

发布时间:2020-03-02 16:13:03 来源:网络 阅读:1388 作者:朱飞东 栏目:数据库

前言

在Greenplum中,每个用户都会对应到资源队列中,资源队列张很多场景有很好应用,例如,很多人共用数据库,需要对不同的人开发不通的队列,控制资源,默认不指定则对应到pg_default资源队列
Greenplum -- 资源队列管理
对添加进来的sql,并不是所有的都会被资源队列所限制,默认情况就:
select、select into、create table name as select、declare cursor会被限制在资源队列中,如果设置参数resource_select_only = off(在postgresql.conf文件),那么insert、update、delete 也是会被限制在资源队列中

一、资源队列常用方法

1.1、查看资源队列情况:

testdb=# select from pg_resqueue_attributes;
Greenplum -- 资源队列管理
active_statements:同时可执行的sql个数
max_cost:每条sql最大消耗的cost数量,也就是explain查看的时候可以看到的cost
min_cost:最少cost数量,如果sql需要的cost小与这个,无论什么情况都会马上执行
cost_over_commit:true时,在资源队列没有其他sql运行时,超过max_cost的sql也会被执行,false时,只要超过了max_cost就直接报错
priority:CPU优先级,分为min|low|medium|high|max
memory_limit:分两种情况,一种是只设置了memory_limit和active_queue,那么每个sql最大占用内存为: memory_limit / active_queue;另外一种情况是设置了max_cost,那么每个sql最大占用内存为:memory_limit
(sql_cost / max_cost) sql_cost表示当前sql所需要的cost

1.2、查看整个系统当前正在执行sql,可以根据

testdb=# SELECT * FROM pg_stat_activity;

1.3、查看资源队列中等待的语句:

testdb=# SELECT * FROM gp_toolkit.gp_locks_on_resqueue WHERE lorwaiting='true';

1.4、查看用户与资源队列的对应关系

testdb=# SELECT rolname, rsqname FROM pg_roles, gp_toolkit.gp_resqueue_status WHERE pg_roles.rolresqueue=gp_toolkit.gp_resqueue_status.queueid;

1.5、查看当前执行的sql与对应资源队列关系

testdb=# select * from gp_toolkit.gp_resq_priority_statement ;

1.6、新建资源队列:

testdb=# create resource queue myqueue with (priority=low, memory_limit=1024000, active_statements=10);

1.7、修改资源队列

testdb=# alter resource queue myqueue with (memory_limit=1000000);

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI