使用资源管理器
使用资源管理器:
1.无论系统负荷多大,保证系统不同会话获取适当的资源.
2.针对不同用户和程序使用不同的CPU.
3.可以分配多个用户组,限制并发操作.
4.创建活动的会话池(资源池原理).
5.管理运行会话是否超过指定的CPU或者IO界限,会话将过期或者将被切换到一个不同的优先级的组中.
6.设置seesion的空闲时间,超过则清除.
7.优化器检查执行时间,查过规定时间不执行.
8.配置一个实例使用一个特殊的schema.
DBMS_RESOURCE_MANAGER:最多可以分配8个组,只能分配CPU.
使用如下;
SIPLE_PLAN的名字:SIPLE_PLAN;
创建第一个GRP1,使用80%的CPU.
创建第一个GRP2,使用20%的CPU.
begin
dbms_resource_manager.create_simple_plan(SIMPLE_PLAN=>'SIPLE_PLAN',
CONSUMER_GRP1=>'GRP1',GRP1_PERCENT=>80,
CONSUMER_GRP2=>'GRP2',GRP2_PERCENT=>20
);
end;
例如:
begin
dbms_resource_manager.create_simple_plan('bbkplan',
'grp1',80,
'grp2',20
);
end;
dbms_resource_manager_privs:
dbms_resource_manager_privs.grant_system_privilege(
grantee_name=>'OE',
privilege_name=>'ADMINISTER RESOURCE MANAGER',
admin_option=>False
);
改变用户的会话组
dbms_session.switch_current_consumer_group(
new_consumer_group=>'DSS',
old_consumer_group=>v_old_group,
initial_group_on_error=>False
);
查询用户的会话
select sid,serial#,username from v$session;
dba设置一个用户的一个会话信息
dbms_resource_manager.switch_consumer_group_for_sess(
session_id=>7,
session_serial=>13,
consumer_group=>'OLTP'
);
dba设置一个用户的所有会话中的session
dbms_resource_manager.switch_consumer_group_for_sess(
user=>'SCOTT',
consumer_group=>'OLTP'
);
dba_rsrc_plans:
dba_rsrc_plan_directives:
dba_rsrc_consumer_groups:
dba_rsrc_consumer_group_privs:
dba_users:
dba_rsrc_manager_system_privs:
查询资源执行组
select plan,group_or_subplan,cpu_p1,cpu_p2,cpu_p3,parallel_degree_limit_p1,
status from dba_rsrc_plan_directives;
查询资源计划的权限信息
select * from dba_rsrc_consumer_group_privs;
v$session: 包含一个列resource_consumer_group.
v$rsrc_plan:当前活动的资源plan.
v$rsrc_consumer_group:活动的组.
Oracle 性能调优学习笔记(十)-- 使用资源管理包
最新推荐文章于 2024-08-15 01:26:58 发布