RelationalDBDesignRelationalDBDesign





Memory Architecture   «Prev  Next»
Lesson 8 The large pool
Objective Identify the Function of the Large Pool.

Identify the Function of the Large Pool

Large memory allocations

The large pool is an optional memory area. It provides an area of memory from which large allocations can be made. Oracle's backup and restore utilities typically allocate buffers that are hundreds of kilobytes in size. These will be allocated in the large pool if one is present.
The multi-threaded server will also take advantage of the large pool, allocating session memory there instead of in the shared pool, thus leaving more of the shared pool open for SQL statements and execution plans.

Configuring a large pool

A large pool will only be present if the DBA has used the LARGE_POOL_SIZE initialization parameter to configure one. For example, to allocate a large pool of 10 megabytes, you would add the following line to your database's initialization file:
LARGE_POOL_SIZE = 10M

Large Pool

The large pool is an optional memory area intended for memory allocations that are larger than is appropriate for the shared pool. The large pool can provide large memory allocations for the following:
  1. UGA for the shared server and the Oracle XA interface (used where transactions interact with multiple databases)
  2. Message buffers used in the parallel execution of statements
  3. Buffers for Recovery Manager (RMAN) I/O slaves
By allocating session memory from the large pool for shared SQL, the database avoids performance overhead caused by shrinking the shared SQL cache. By allocating memory in large buffers for RMAN operations, I/O server processes, and parallel buffers, the large pool can satisfy large memory requests better than the shared pool.
Figure 5-8 is a graphical depiction of the large pool.



Figure 5-8 Large Pool
Figure 5-8 Large Pool

The large pool is different from reserved space in the shared pool, which uses the same LRU list as other memory allocated from the shared pool. The large pool does not have an LRU list. Pieces of memory are allocated and cannot be freed until they are done being used. As soon as a chunk of memory is freed, other processes can use it.

Java Pool

The Java pool is an area of memory that stores all session-specific Java code and data within the Java Virtual Machine (JVM). This memory includes Java objects that are migrated to the Java session space at end-of-call. For dedicated server connections, the Java pool includes the shared part of each Java class, including methods and read-only memory such as code vectors, but not the per-session Java state of each session. For shared server, the pool includes the shared part of each class and some UGA used for the state of each session. Each UGA grows and shrinks as necessary, but the total UGA size must fit in the Java pool space. The Java Pool Advisor statistics provide information about library cache memory used for Java and predict how changes in the size of the Java pool can affect the parse rate. The Java Pool Advisor is internally turned on when statistics_level is set to TYPICAL or higher. These statistics reset when the advisor is turned off.

Shared large Pools - Quiz

Click the Quiz link below to test your knowledge of the shared pool and the large pool.
Shared large Pools - Quiz