溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Greenplum -- 資源隊列管理

發(fā)布時間:2020-03-02 16:13:03 來源:網(wǎng)絡 閱讀:1385 作者:朱飛東 欄目:數(shù)據(jù)庫

前言

在Greenplum中,每個用戶都會對應到資源隊列中,資源隊列張很多場景有很好應用,例如,很多人共用數(shù)據(jù)庫,需要對不同的人開發(fā)不通的隊列,控制資源,默認不指定則對應到pg_default資源隊列
Greenplum -- 資源隊列管理
對添加進來的sql,并不是所有的都會被資源隊列所限制,默認情況就:
select、select into、create table name as select、declare cursor會被限制在資源隊列中,如果設置參數(shù)resource_select_only = off(在postgresql.conf文件),那么insert、update、delete 也是會被限制在資源隊列中

一、資源隊列常用方法

1.1、查看資源隊列情況:

testdb=# select from pg_resqueue_attributes;
Greenplum -- 資源隊列管理
active_statements:同時可執(zhí)行的sql個數(shù)
max_cost:每條sql最大消耗的cost數(shù)量,也就是explain查看的時候可以看到的cost
min_cost:最少cost數(shù)量,如果sql需要的cost小與這個,無論什么情況都會馬上執(zhí)行
cost_over_commit:true時,在資源隊列沒有其他sql運行時,超過max_cost的sql也會被執(zhí)行,false時,只要超過了max_cost就直接報錯
priority:CPU優(yōu)先級,分為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、查看整個系統(tǒng)當前正在執(zhí)行sql,可以根據(jù)

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、查看當前執(zhí)行的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問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI