
프로파일--> cpu가 아닌 logical read 수의 제한리소스 매니저--> cpu 사용에 대한 유저별 제한을 둘 수 있음
-- 현재 consumer 그룹들의 cpu 사용율을 실시간으로 확인하는 명령어
select name, consumed_cpu_time, cpu_wait_time
from v$rsrc_consumer_group;
SYS_GROUP -----------> sys, system 유져 cpu_p1 100%
ONLINE_USERS -----------> scott 유져 cpu_p2 70%
OTHER_GROUPS -----------> hr, sh 유져 cpu_p2 30%
SYSTEM> exec dbms_resource_manager.create_pending_area();
SYSTEM> begin
dbms_resource_manager.update_plan_directive(
plan => 'DAYTIME',
group_or_subplan=> 'ONLINE_USERS',
new_cpu_p2 => 5); -- CPU 자원의 5%를 할당
end;
/
SYSTEM> exec dbms_resource_manager.submit_pending_area();
sys나 system이 cpu를 먼저 확보해서 사용을 해야 scott이 남은 것 중에 5%만 사용하겠다는 것임
new_max_est_exec_time을 120초로 설정하기
지금부터 수행하려는 SQL이 120초를 넘어갈 것 같으면 아예 처음부터 시작도 안되게 할 수 있음
SYSTEM> exec dbms_resource_manager.create_pending_area();
SYSTEM> begin
dbms_resource_manager.update_plan_directive(
plan=>'DAYTIME',
group_or_subplan=>'ONLINE_USERS',
new_max_est_exec_time => 120 );
end;
/
SYSTEM> exec dbms_resource_manager.submit_pending_area();
[oracle@ora19c ~]$ sqlplus scott/tiger
SCOTT @ ORA19 > select count(*)
2 from sh.sales, sh.sales;
COUNT(*)
----------
7862416
SCOTT @ ORA19 > select count(*)
2 from sh.sales, sh.sales, sh.sales, sh.sales, sh.sales;
from sh.sales, sh.sales, sh.sales, sh.sales, sh.sales
*
2행에 오류:
ORA-07455: 예측 실행 시간(85791556750초)이 제한 시간(120초)을 초과함
SYSTEM> exec dbms_resource_manager.create_pending_area();
SYSTEM> begin
dbms_resource_manager.update_plan_directive(
plan=>'DAYTIME',
group_or_subplan=>'ONLINE_USERS',
new_max_est_exec_time => -1 );
end;
/
SYSTEM> exec dbms_resource_manager.submit_pending_area();