Memory management is an important component of working with instances in your database. Oracle 12c gives you three ways to manage the memory in your instance:
- Auto Tuned Parameters Automatic Shared Memory Management System
- Auto Tuned Parameters Automatic Shared Memory Management In Java
Automatically by letting Oracle do all the work
Manually by tuning individual parameters for the different memory areas
Combination of automatic and manual by using your knowledge of how things operate, employing Oracle’s advice infrastructure, and letting Oracle take over some areas
In 11g and beyond, Oracle automatic memory management is configured using the memorytarget and memorymaxtarget initialization parameters. The memorytarget parameter specifies the amount of shared memory available for Oracle to use when dynamically controlling the SGA and PGA.
A quick note on Oracle automation. Through the last several releases of Oracle, the database has become more automated in areas that were previously manual and even tedious at times. This isn’t to say that soon it will take no special skill to manage an Oracle database. Exactly the opposite: When more mundane operations are automated, it frees you up as the DBA to focus on the more advanced features.
We’ve had great success implementing automated features for clients. It frees up our resources to focus on things such as high availability and security, areas that require near full-time attention. Thank goodness you don’t have to spend hours watching what SQL statements are aging out of the shared pool prematurely, resulting in performance problems.
We recommend that you manage memory automatically in Oracle 12c.
Automatic Memory Management ( Oracle 11g New Features) Well in 10g SGA can be auto tune and 11g it extended to PGA as well ie SGA and PGA both can auto tune ( i would say, i understood this much only 11g memory management = SGA auto tune + PGA auto tune ) For auto memory, we need to set parameter MEMORYTARGET and MEMORYMAXTARGET. The Oracle Automatic Shared Memory Management is a feature that automatically readjusts the sizes of the main pools (dbcachesize, sharedpoolsize, largepoolsize, javapoolsize) based on existing workloads. Oracle Automatic Shared Memory Management is enabled by setting: You must use an spfile for the init.ora values.
When you create your database, you can set one new parameter that takes nearly all memory tuning out of your hands: MEMORY_TARGET. By setting this parameter, all the memory areas are automatically sized and managed. After you type show parameter memory_target in SQL*Plus (the SQL command-line interface available in Oracle), you see this output on the screen:
Automatic memory management lets you take hold of the amount of memory on the system and then decide how much you want to use for the database.
It’s never obvious what value you should choose as a starting point. Answer these questions to help set the value:
How much memory is available?
How many databases will ultimately be on the machine?
How many users will be on the machine? (If many, you allocate 4MB per user for process overhead.)
What other applications are running on the machine?
Before the users get on the machine, consider taking no more than 40 percent of the memory for Oracle databases. Use this formula:
(GB of memory × .40) / Number of Eventual Databases = GB for MEMORY_TARGET per database
For example, if your machine had 8GB of memory and will ultimately house two databases similar in nature and only 100 users each, you would have this equation: (8 × .40) / 2 = 1.6GB for MEMORY_TARGET per database.
Auto Tuned Parameters Automatic Shared Memory Management System
To help determine whether you have enough memory, Oracle gives you some pointers if you know where to look. It’s called the Memory Target Advisor. Find it from the command line in the form of the view V$MEMORY_TARGET_ADVICE. You can find it in the Database Control home page by clicking Advisor Central>Memory Advisors>Advice.
Whatever you choose for the MEMORY_TARGET setting isn’t all the memory Oracle uses. That’s why you should have an idea of how many sessions there will be before you make the final determination.
Auto Tuned Parameters Automatic Shared Memory Management In Java
For instance, this parameter covers only memory used by the SGA and PGA. Every single session that connects to the database requires memory associated with its OS or server process. This memory requirement adds up. One of our clients has nearly 3,000 simultaneous connections eating up about 16GB of memory outside the SGA and PGA. The client’s machine has 64GB of memory, and the MEMORY_TARGET is set at 16GB.