PL/SQL’s Use of Memory in the Oracle Server
By economizing on its use of machine resources such as memory and CPU, Oracle can support tens of thousands of simultaneous users on a single database. Oracle’s memory management techniques have become quite sophisticated over the years, and correspondingly difficult to understand. Although administrators of busy databases need a thorough knowledge of memory management, advanced PL/SQL programmers should also have a good understanding of this topic. Virtually all PL/SQL programmers will want to know how to avoid undermining Oracle’s memory sharing algorithms.
Server Memory 101
Let’s first look at some basics. An Oracle database
instance
consists of a shared memory area known
as the
System Global
Area
(SGA), plus a number of
background processes.[25] Although a large part of the SGA
typically consists of buffer pools that cache table data, another
part that’s of particular importance to PL/SQL
performance is the shared pool. The shared pool
performs two maincaching functions:
It holds metadata from the data dictionary
It holds parsed representations of SQL statements and PL/SQL programs
The first time any user session runs a particular PL/SQL program,
Oracle puts the executable portion of the program into the part of
the shared pool called the library
cache
. When that session needs to execute the same PL/SQL program, Oracle will re-use the cached copy of it, saving a trip to the relatively slow disks. Oracle can even use this cached ...
Get Oracle PL/SQL Programming, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.