学无止境
分类: Oracle
2013-12-02 11:10:10
创建资源定制组:
dbms_resource_manager.create_consumer_group(
consumer_group IN VARCHAR2,
comment IN VARCHAR2,
cpu_mth IN VARCHAR2 DEFAULT 'ROUND-ROBIN');
cpu_mth默认是ROUND-ROBIN,每个会话都平均使用CPU
如果设置为RUN-TO-COMPLETION,则最大活动时间的会话会在其他会话之前调度。
使用creative_plan_directive将定制组合资源计划相关联:
例如:
dbms_resource_manager.create_plan_directive(
plan => 'SINGLE_LEVEL_PLAN',
group_or_subplan => 'BATCH_Group',
comment => 'batch day users sessions at level 1',
cpu_p1 => 10,
active_sess_pool_p1 => 1,
parallel_degree_limit_p1 => 10);
使用该存储过程,赋给用户具有切换到该资源组的权限。
dbms_resource_manager_privs.grant_switch_consumer_group
dbms_resource_manager_privs.grant_switch_consumer_group(
grantee_name => 'BATCH',
consumer_group => 'BATCH_Group',
grant_option => FALSE);
-- 查询用户的初始化资源组
select username, initial_rsrc_consumer_group from dba_users;
-- 设置用户的资源组
begin
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER,'LDY','OLTP_GROUP');
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
end;
/
begin
DBMS_RESOURCE_MANAGER.SET_INITIAL_CONSUMER_GROUP(USER => 'LDY',CONSUMER_GROUP =>'CPU_LIMIT');
end;
/
DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING
这个过程可以对映射到资源的会话,添加、删除或修改属性条目。该过程执行之后,对现有会话立即生效
执行该过程时,需要创建未决区。
DBMS_RESOURCE_MANAGER.SET_INITIAL_CONSUMER_GROUP
设置用户的初始资源组,在会话登录时生效。
该过程的执行,不需要创建未决区。
-- 对已登录的LDY用户进行资源组手动切换
begin
dbms_resource_manager.switch_consumer_group_for_user(USER => 'BATCH' ,CONSUMER_GROUP => 'OLTP_GROUP');
end;
/
-- 对特定session进行资源组手动切换
begin
DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_SESS(session_id=> 144 ,session_serial => 21,CONSUMER_GROUP => 'OLTP_GROUP');
end;
/