next Tuning des Database Buffer Caches
up High-Performance-Tuning
previous Materialized Views
  Contents   Index

Subsections


Einführung in den Resourcen-Plan

Ziel: Effektive Ressourcenplanung
Weg: Gruppenbildung und Zuweisen von Ressourcen zu den Gruppen


Beispiel


CPU-Nutzung bei RM

Anmerkung:
Gilt nur, wenn die jeweils vorigen Level Ihre Grenze ausgeschöpft haben. Wenn OLTP im Augenblick gar nichts machen, geht natürlich 80% der gesamten CPU an die ADHOC_USER.

Ressourcen Gruppen Level 1 CPU Level 2 CPU Level 3 CPU
OLTP_USERS 80% 0% 0%
BATCH_USERS 0% 10% 0%
ADHOC_USERS 0% 80% 0%
OTHER_GROUPS 0% 0% 100%

Praktische Umsetzung


dbms_resource_manager


Erstellen

exec dbms_resource_manager.clear_pending_area();
exec dbms_resource_manager.create_pending_area();
exec dbms_resource_manager.create_plan
 (plan => 'Plan_1',comment=>'Mein erster Plan')
;
exec dbms_resource_manager.create_consumer_group
  (consumer_group => 'OLTP_USERS',comment=>'Meine erste Gruppe')
;
exec dbms_resource_manager.create_consumer_group
  (consumer_group => 'ADHOC_USERS',comment=>'')
;
exec dbms_resource_manager.create_consumer_group
  (consumer_group => 'BATCH_USERS',comment=>'')
;
exec dbms_resource_manager.create_plan_directive
  (plan => 'Plan_1', group_or_subplan => 'OLTP_USERS', cpu_p1 => 80,comment=>'')
;
exec dbms_resource_manager.create_plan_directive
  (plan => 'Plan_1', group_or_subplan => 'ADHOC_USERS', cpu_p2 => 80,comment=>'')
;
exec dbms_resource_manager.create_plan_directive
  (plan => 'Plan_1', group_or_subplan => 'BATCH_USERS', cpu_p2 => 10,comment=>'')
;
exec dbms_resource_manager.create_plan_directive
  (plan => 'Plan_1', group_or_subplan => 'OTHER_GROUPS', cpu_p3 => 100,comment=>'')
;
exec dbms_resource_manager.submit_pending_area();
exec dbms_resource_manager.create_pending_area();
exec dbms_resource_manager_privs.grant_switch_consumer_group
  (grantee_name => 'ADHOC_1',consumer_group => 'ADHOC_USERS', grant_option => FALSE)
;
exec dbms_resource_manager.set_initial_consumer_group
  (user => 'ADHOC_1',consumer_group => 'ADHOC_USERS')
;
alter system set resource_manager_plan = 'Plan_1';
Hinweis:
grant switch consumer group ist Voraussetzung für set initial consumer group. OTHER_GROUPS muß es geben, da dort alle, die in keiner anderen Gruppe sind, stehen.

Änderungen

exec dbms_resource_manager.clear_pending_area();
exec dbms_resource_manager.create_pending_area();
exec dbms_resource_manager.update_plan_directive
  (plan => 'Plan_1', group_or_subplan => 'OLTP_USERS', new_cpu_p1 => 70,new_comment=>'')
;
exec dbms_resource_manager.submit_pending_area();
Hinweise:
alle Parameter heißen jetzt new_
Unlimited ist -1
Wichtige Parameter können mit dem OEM ermittelt werden.

Aktivieren / Deaktiveren

Es kann nur ein Plan aktiv sein.
alter system set resource_manager_plan = 'Plan_1';
alter system set resource_manager_plan = '';
In der INIT-Datei durch resource_manager_plan = 'Plan_1'

Weitere Einstellungen

Abfragenlänge: Wenn geschätzte Ausführungszeit größer ist, dann erfolgt Abbruch.
TABLE muß analysiert worden sein.

Maximale Sessionzahl je Gruppe
Maximale Undo-Größe

Übung Resourcen-Plan

Übungen siehe Seite [*].
next Tuning des Database Buffer Caches
up High-Performance-Tuning
previous Materialized Views
  Contents   Index


Stefan Hietel dama.go GmbH, Robert Warnke http://rowa.giso.de