Question about MEMORY_TARGET and MEMORY_MAX_TARGET and EM
783956Aug 21 2010 — edited Aug 22 2010Good evening,
After a lot of reading and googling and ask Tom (and Jerry too!) and visiting a myriad of websites, I still fail to understand the exact scope of MEMORY_TARGET and MEMORY_MAX_TARGET. I would be most grateful for a clear, sensible, verifiable and, technically correct explanation as to what these two parameters represent and how they interact with each other and, why two different parameters are needed instead of just one.
The clearest statement I have found so far is:
From [Oracle Frequently Asked Questions Wiki|http://www.orafaq.com/wiki/Memory_target]
>
MEMORY_TARGET provides the following:
A single parameter for total SGA and PGA sizes
<li>Automatically sizes SGA components and PGA
<li>Memory is transferred to where most needed
<li>Uses workload information
<li>Uses internal advisory predictions
<li>Can be enable by DBCA at the time of Database creation.
>
That sounds quite reasonable but since MEMORY_TARGET includes both the SGA and the PGA sizes, what would MEMORY_MAX_TARGET be needed for ? How is the memory represented by MEMORY_MAX_TARGET - MEMORY_TARGET used by Oracle ? Is it simply wasted ? (Note: MEMORY_TARGET's maximum value must, sensibly, be less than or equal to MEMORY_MAX_TARGET)
Seen from a different viewpoint, when a database is created, we can take away from the O/S a number X of GBs and hand them to Oracle by setting the parameter MEMORY_MAX_TARGET. Why would Oracle not use it all (by setting a value of MEMORY_TARGET lower than MEMORY_MAX_TARGET) ? what does MEMORY_TARGET tell Oracle that MEMORY_MAX_TARGET doesn't (or viceversa) ?
Why would anyone want to set MEMORY_TARGET to be less than MEMORY_MAX_TARGET ?
I very much appreciate all the help in clarifying the above questions.
Thank you very much,
John.