Question

I am new to the Oracle 10g Resource Manager and am looking for guidance on how to put together a plan to meet my goals. I will test the plan, but I'm hoping for some guidance so I don't have to try hundreds of different plan configurations. I have the following goals:

  1. Don't let non-sys sessions significantly slow down sys sessions.
  2. Don't let any OLTP users sessions significantly slow down any other OLTP users sessions.
  3. Don't let batch processing slow down OLTP.

Given these goals my first thought is to create the following consumer groups/plan directives:

Consumer Group       Level 1     Level 2    Level 3
SYS                  100%           0%        0%
OLTP1                  0%          10%        0%
OLTP2                  0%          10%        0%
OLTP3                  0%          10%        0%
OLTP4                  0%          10%        0%
OLTP5                  0%          10%        0%
OLTP6                  0%          10%        0%
OLTP7                  0%          10%        0%
OLTP8                  0%          10%        0%
OLTP9                  0%          10%        0%
OLTP10                 0%          10%        0%
BATCH                  0%           0%      100%

Using this method each OLTP user could be put in a different OLTP group (assuming 10 users). The documentation isn't very clear on this, but it sounds like if an OLTP user in group OLTP1 needs more than it's 10% share that it will get it as long as every other OLTP group is getting 10% if it needs it. Is my understanding accurate? Will this work or is there a better way?

Was it helpful?

Solution

I would simplify this a little, make one group for OLTP, if they have the same requirements. Only make a new group when that new group has different requirements than the others in terms of priority. Also make sure that when an OLTP user has started a long running heavy duty process, that this session is switched to the batch group, or not started at all. Resource manager only kicks in when cpu consumption is at 100%. From that point on it will start dividing resources to make sure that each group gets what it should get based on your directives. Other things to think of are max parallel degree, session pool and (from 11g and up) undo usage and io limits.

best regards, Ronald http://ronr.blogspot.com

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top