blob: 7d6748b8fd161312def4f5fb2a51ff6950b898db [file]
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE adhoc11 ACTIVE THRESHOLD 1;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname='adhoc11';
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
---------+---------------+--------------+---------------+--------------------
adhoc11 | 1 | -1 | f | 0
(1 row)
--create role and assign role to resource queue
CREATE ROLE role11 with LOGIN RESOURCE QUEUE adhoc11;
-- select role, resource queue details from pg_roles and pg_resqueue tables
SELECT rolname, rsqname FROM pg_roles AS r,pg_resqueue AS q WHERE r.rolresqueue=q.oid and rolname='role11';
rolname | rsqname
---------+---------
role11 | adhoc11
(1 row)
-- drop role
DROP ROLE role11;
-- drop resource queue
DROP RESOURCE QUEUE adhoc11;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE adhoc12 ACTIVE THRESHOLD 2;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname='adhoc12';
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
---------+---------------+--------------+---------------+--------------------
adhoc12 | 2 | -1 | f | 0
(1 row)
-- drop resource queue
DROP RESOURCE QUEUE adhoc12;
-- select from pg_resqueue table
--select * from pg_resqueue;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE adhoc13 ACTIVE THRESHOLD 2;
CREATE RESOURCE QUEUE adhoc14 ACTIVE THRESHOLD 3;
-- select from pg_resqueue table
select rsqname from pg_resqueue where rsqname='adhoc13' and rsqname='adhoc14';
rsqname
---------
(0 rows)
--create role and assign role to resource queue
CREATE ROLE role13 with LOGIN RESOURCE QUEUE adhoc13;
CREATE ROLE role14 with LOGIN RESOURCE QUEUE adhoc14;
-- select role, resource queue details from pg_roles and pg_resqueue tables
SELECT rolname, rsqname FROM pg_roles AS r,pg_resqueue AS q WHERE r.rolresqueue=q.oid and rolname in ('role13','role14');
rolname | rsqname
---------+---------
role13 | adhoc13
role14 | adhoc14
(2 rows)
-- drop role
DROP ROLE IF EXISTS role13;
DROP ROLE IF EXISTS role14;
-- drop resource queue
DROP RESOURCE QUEUE adhoc13;
DROP RESOURCE QUEUE adhoc14;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE adhoc1 ACTIVE THRESHOLD 1;
CREATE RESOURCE QUEUE adhoc2 ACTIVE THRESHOLD 2;
CREATE RESOURCE QUEUE adhoc3 ACTIVE THRESHOLD 3;
--CREATE RESOURCE QUEUE adhoc4 ACTIVE THRESHOLD 4;
-- select from pg_resqueue table
--select * from pg_resqueue;
-- drop resource queue
DROP RESOURCE QUEUE adhoc1;
DROP RESOURCE QUEUE adhoc2;
DROP RESOURCE QUEUE adhoc3;
--DROP RESOURCE QUEUE adhoc4;
-- select from pg_resqueue table
--select * from pg_resqueue;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE adhoc1 ACTIVE THRESHOLD 1;
CREATE RESOURCE QUEUE webuser1 ACTIVE THRESHOLD 3;
CREATE RESOURCE QUEUE mgmtuser1 ACTIVE THRESHOLD 5;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname in ('adhoc1','webuser1','mgmtuser1');
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
-----------+---------------+--------------+---------------+--------------------
adhoc1 | 1 | -1 | f | 0
webuser1 | 3 | -1 | f | 0
mgmtuser1 | 5 | -1 | f | 0
(3 rows)
-- drop resource queue
DROP RESOURCE QUEUE adhoc1;
DROP RESOURCE QUEUE webuser1;
DROP RESOURCE QUEUE mgmtuser1;
-- select from pg_resqueue table
--select * from pg_resqueue;
-- Test Workload Administration and Resource queuing
-- create resource queue and assuming that 8 is the maximum limit for the resource queue and 1 resource queue is already present in the table
-- it will give error if it crosses the maximum limit of resource queue
CREATE RESOURCE QUEUE adhoc1 ACTIVE THRESHOLD 1;
CREATE RESOURCE QUEUE webuser1 ACTIVE THRESHOLD 3;
CREATE RESOURCE QUEUE mgmtuser1 ACTIVE THRESHOLD 5;
CREATE RESOURCE QUEUE mgmtuser2 ACTIVE THRESHOLD 7;
CREATE RESOURCE QUEUE mgmtuser3 ACTIVE THRESHOLD 9;
CREATE RESOURCE QUEUE mgmtuser4 ACTIVE THRESHOLD 8;
CREATE RESOURCE QUEUE mgmtuser5 ACTIVE THRESHOLD 6;
CREATE RESOURCE QUEUE mgmtuser6 ACTIVE THRESHOLD 2;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue;
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
------------+---------------+--------------+---------------+--------------------
pg_default | 20 | -1 | f | 0
adhoc1 | 1 | -1 | f | 0
webuser1 | 3 | -1 | f | 0
mgmtuser1 | 5 | -1 | f | 0
mgmtuser2 | 7 | -1 | f | 0
mgmtuser3 | 9 | -1 | f | 0
mgmtuser4 | 8 | -1 | f | 0
mgmtuser5 | 6 | -1 | f | 0
mgmtuser6 | 2 | -1 | f | 0
(9 rows)
-- drop resource queue
DROP RESOURCE QUEUE adhoc1;
DROP RESOURCE QUEUE webuser1;
DROP RESOURCE QUEUE mgmtuser1;
DROP RESOURCE QUEUE mgmtuser2;
DROP RESOURCE QUEUE mgmtuser3;
DROP RESOURCE QUEUE mgmtuser4;
DROP RESOURCE QUEUE mgmtuser5;
DROP RESOURCE QUEUE mgmtuser6;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue;
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
------------+---------------+--------------+---------------+--------------------
pg_default | 20 | -1 | f | 0
(1 row)
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE bob ACTIVE THRESHOLD 1;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname='bob';
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
---------+---------------+--------------+---------------+--------------------
bob | 1 | -1 | f | 0
(1 row)
-- ALTER Resource Queue
ALTER RESOURCE QUEUE bob ACTIVE THRESHOLD 7;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname='bob';
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
---------+---------------+--------------+---------------+--------------------
bob | 7 | -1 | f | 0
(1 row)
-- drop resource queue
DROP RESOURCE QUEUE bob;
-- select from pg_resqueue table
-- select * from pg_resqueue;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE sameera ACTIVE THRESHOLD 2;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname='sameera';
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
---------+---------------+--------------+---------------+--------------------
sameera | 2 | -1 | f | 0
(1 row)
--create role and assign role to resource queue
CREATE ROLE aryan with LOGIN RESOURCE QUEUE sameera;
-- ALTER Resource Queue
ALTER ROLE aryan RESOURCE QUEUE none;
NOTICE: resource queue required -- using default resource queue "pg_default"
-- select role, resource queue details from pg_roles and pg_resqueue tables
SELECT rolname, rsqname FROM pg_roles AS r,pg_resqueue AS q WHERE r.rolresqueue=q.oid and rolname='aryan';
rolname | rsqname
---------+------------
aryan | pg_default
(1 row)
-- drop role
DROP ROLE aryan;
-- drop resource queue
DROP RESOURCE QUEUE sameera;
-- select from pg_resqueue table
--select * from pg_resqueue;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE ram ACTIVE THRESHOLD 1;
-- select from pg_resqueue table
select rsqname, rsqcountlimit, rsqcostlimit, rsqovercommit, rsqignorecostlimit from pg_resqueue where rsqname='ram';
rsqname | rsqcountlimit | rsqcostlimit | rsqovercommit | rsqignorecostlimit
---------+---------------+--------------+---------------+--------------------
ram | 1 | -1 | f | 0
(1 row)
--create role and assign role to resource queue
CREATE ROLE sita with LOGIN RESOURCE QUEUE ram;
CREATE ROLE samrat with LOGIN RESOURCE QUEUE ram;
-- ALTER ROLE
ALTER ROLE sita RESOURCE QUEUE ram;
ALTER ROLE samrat RESOURCE QUEUE ram;
-- select role, resource queue details from pg_roles and pg_resqueue tables
SELECT rolname, rsqname FROM pg_roles AS r,pg_resqueue AS q WHERE r.rolresqueue=q.oid and rsqname='ram';
rolname | rsqname
---------+---------
samrat | ram
sita | ram
(2 rows)
-- drop role
DROP ROLE sita;
DROP ROLE samrat;
-- drop resource queue
DROP RESOURCE QUEUE ram;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE camy11 COST THRESHOLD 200.0;
CREATE RESOURCE QUEUE camy22 COST THRESHOLD 500.0;
-- select from pg_resqueue table
select * from pg_resqueue_status where rsqname in ('camy11','camy22');
rsqname | rsqcountlimit | rsqcountvalue | rsqcostlimit | rsqcostvalue | rsqwaiters | rsqholders
---------+---------------+---------------+--------------+--------------+------------+------------
camy22 | -1 | | 500 | 0 | 0 | 0
camy11 | -1 | | 200 | 0 | 0 | 0
(2 rows)
--create role and assign role to resource queue
CREATE ROLE creig11 with LOGIN RESOURCE QUEUE camy11;
CREATE ROLE creig22 with LOGIN RESOURCE QUEUE camy22;
-- ALTER Resource Queue
ALTER ROLE creig11 RESOURCE QUEUE camy11;
ALTER ROLE creig22 RESOURCE QUEUE camy22;
-- drop role
DROP ROLE creig11;
DROP ROLE creig22;
-- drop resource queue
DROP RESOURCE QUEUE camy11;
DROP RESOURCE QUEUE camy22;
-- select from pg_resqueue_status table
--select * from pg_resqueue_status;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE tom ACTIVE THRESHOLD 20;
-- ALTER RESOURCE QUEUE
ALTER RESOURCE QUEUE tom COST THRESHOLD 100.0;
-- select from pg_resqueue table
select * from pg_resqueue_status where rsqname='tom';
rsqname | rsqcountlimit | rsqcountvalue | rsqcostlimit | rsqcostvalue | rsqwaiters | rsqholders
---------+---------------+---------------+--------------+--------------+------------+------------
tom | 20 | 0 | 100 | 0 | 0 | 0
(1 row)
-- drop resource queue
DROP RESOURCE QUEUE tom;
-- select from pg_resqueue_status table
--select * from pg_resqueue_status;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE myq11 ACTIVE THRESHOLD 10;
-- ALTER RESOURCE QUEUE
ALTER RESOURCE QUEUE myq11 COST THRESHOLD 50.0;
ALTER RESOURCE QUEUE myq11 COST THRESHOLD 3e+7;
-- select from pg_resqueue table
select * from pg_resqueue_status where rsqname='myq11';
rsqname | rsqcountlimit | rsqcountvalue | rsqcostlimit | rsqcostvalue | rsqwaiters | rsqholders
---------+---------------+---------------+--------------+--------------+------------+------------
myq11 | 10 | 0 | 3e+07 | 0 | 0 | 0
(1 row)
-- drop resource queue
DROP RESOURCE QUEUE myq11;
-- select from pg_resqueue_status table
--select * from pg_resqueue_status;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE myq21 ACTIVE THRESHOLD 7;
-- ALTER RESOURCE QUEUE
ALTER RESOURCE QUEUE myq21 COST THRESHOLD 70.0;
ALTER RESOURCE QUEUE myq21 COST THRESHOLD 3e+9 NOOVERCOMMIT;
-- select from pg_resqueue table
select * from pg_resqueue_status where rsqname='myq21';
rsqname | rsqcountlimit | rsqcountvalue | rsqcostlimit | rsqcostvalue | rsqwaiters | rsqholders
---------+---------------+---------------+--------------+--------------+------------+------------
myq21 | 7 | 0 | 3e+09 | 0 | 0 | 0
(1 row)
-- drop resource queue
DROP RESOURCE QUEUE myq21;
-- select from pg_resqueue_status table
--select * from pg_resqueue_status;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE tom11 ACTIVE THRESHOLD 20;
--create role and assign role to resource queue
CREATE ROLE shaun11 with LOGIN RESOURCE QUEUE tom11;
-- select from pg_resqueue, pg_roles table
SELECT rolname, rsqname FROM pg_roles, pg_resqueue WHERE pg_roles.rolresqueue=pg_resqueue.oid and rolname='shaun11';
rolname | rsqname
---------+---------
shaun11 | tom11
(1 row)
-- create a view
CREATE VIEW role2que AS SELECT rolname, rsqname FROM pg_roles, pg_resqueue WHERE pg_roles.rolresqueue=pg_resqueue.oid and rolname='shaun11';
-- select from view
select * from role2que where rolname='shaun11';
rolname | rsqname
---------+---------
shaun11 | tom11
(1 row)
-- drop role name
DROP ROLE shaun11;
-- drop resource queue
DROP RESOURCE QUEUE tom11;
-- select from view
--select * from role2que;
-- drop view
DROP VIEW role2que;
-- Test Workload Administration and Resource queuing
-- create resource queue
CREATE RESOURCE QUEUE tom55 ACTIVE THRESHOLD 10;
--create role and assign role to resource queue
CREATE ROLE shaun55 with LOGIN RESOURCE QUEUE tom55;
-- select from pg_resqueue, pg_role table
SELECT rolname, rsqname, pg_locks.pid, granted, query,datname FROM pg_roles, pg_resqueue, pg_locks, pg_stat_activity WHERE pg_roles.rolresqueue=pg_locks.objid AND pg_locks.objid=pg_resqueue.oid AND pg_stat_activity.pid=pg_locks.pid;
rolname | rsqname | pid | granted | query | datname
---------+---------+-----+---------+-------+---------
(0 rows)
-- create a view
CREATE VIEW resq_procs AS SELECT rolname, rsqname, pg_locks.pid, granted, query,datname FROM pg_roles, pg_resqueue, pg_locks, pg_stat_activity WHERE pg_roles.rolresqueue=pg_locks.objid AND pg_locks.objid=pg_resqueue.oid AND pg_stat_activity.pid=pg_locks.pid;
-- select from view
select * from resq_procs;
rolname | rsqname | pid | granted | query | datname
---------+---------+-----+---------+-------+---------
(0 rows)
-- drop role name
DROP ROLE shaun55;
-- drop resource queue
DROP RESOURCE QUEUE tom55;
-- select from view
--select * from resq_procs;
-- drop view
DROP VIEW resq_procs;