You are on page 1of 21

Oracle Database Concepts

10g Release 2 (10.2)


B14220-02
Home Book
List
Contents Index Master
Index
Contact
Us
Previous Next
PDF ! Mo"i ! ePu"
8 Memory Architectre
#$is c$a%ter discusses t$e memor& arc$itecture o' an (rac)e instance*
#$is c$a%ter contains t$e 'o))o+in, to%ics-
Introduction to (rac)e Memor& .tructures
(vervie+ o' t$e .&stem /)o"a) 0rea
(vervie+ o' t$e Pro,ram /)o"a) 0reas
Dedicated and .$ared .ervers
.o't+are Code 0reas
!ntro"ction to Oracle Memory #trctres
(rac)e uses memor& to store in'ormation suc$ as t$e 'o))o+in,-
Pro,ram code
In'ormation a"out a connected session1 even i' it is not current)& active
In'ormation needed durin, %ro,ram execution 2'or exam%)e1 t$e current state o' a 3uer& 'rom
+$ic$ ro+s are "ein, 'etc$ed4
In'ormation t$at is s$ared and communicated amon, (rac)e %rocesses 2'or exam%)e1 )ockin,
in'ormation4
Cac$ed data t$at is a)so %ermanent)& stored on %eri%$era) memor& 2'or exam%)e1 data ")ocks and
redo )o, entries4
#$e "asic memor& structures associated +it$ (rac)e inc)ude-
.&stem /)o"a) 0rea 2./041 +$ic$ is s$ared "& a)) server and "ack,round %rocesses*
Pro,ram /)o"a) 0reas 2P/041 +$ic$ is %rivate to eac$ server and "ack,round %rocess5 t$ere is one
P/0 'or eac$ %rocess*
Fi,ure 6-1 i))ustrates t$e re)ations$i%s amon, t$ese memor& structures*
$igre 8%1 Oracle Memory #trctres
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
1 of 21 5/6/2014 11:22 AM
Descri%tion o' 7Fi,ure 6-1 (rac)e Memor& .tructures7
.o't+are code areas are anot$er "asic memor& structure*
#ee Also&
7(vervie+ o' t$e .&stem /)o"a) 0rea7
7(vervie+ o' t$e Pro,ram /)o"a) 0reas7
7.o't+are Code 0reas7
O'er'ie( o) the #ystem *lobal Area
0 system global area 2./04 is a ,rou% o' s$ared memor& structures t$at contain data and contro)
in'ormation 'or one (rac)e data"ase instance* I' mu)ti%)e users are concurrent)& connected to t$e same
instance1 t$en t$e data in t$e instance8s ./0 is s$ared amon, t$e users* Conse3uent)&1 t$e ./0 is
sometimes ca))ed t$e share" global area*
0n ./0 and (rac)e %rocesses constitute an (rac)e instance* (rac)e automatica))& a))ocates memor& 'or
an ./0 +$en &ou start an instance1 and t$e o%eratin, s&stem rec)aims t$e memor& +$en &ou s$ut do+n
t$e instance* 9ac$ instance $as its o+n ./0*
#$e ./0 is read:+rite* 0)) users connected to a mu)ti%)e-%rocess data"ase instance can read in'ormation
contained +it$in t$e instance8s ./01 and severa) %rocesses +rite to t$e ./0 durin, execution o' (rac)e*
#$e ./0 contains t$e 'o))o+in, data structures-
Data"ase "u''er cac$e
;edo )o, "u''er
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
2 of 21 5/6/2014 11:22 AM
.$ared %oo)
<ava %oo)
Lar,e %oo) 2o%tiona)4
.treams %oo)
Data dictionar& cac$e
(t$er misce))aneous in'ormation
Part o' t$e ./0 contains ,enera) in'ormation a"out t$e state o' t$e data"ase and t$e instance1 +$ic$
t$e "ack,round %rocesses need to access5 t$is is ca))ed t$e )i+e" #*A* No user data is stored $ere*
#$e ./0 a)so inc)udes in'ormation communicated "et+een %rocesses1 suc$ as )ockin, in'ormation*
I' t$e s&stem uses s$ared server arc$itecture1 t$en t$e re3uest and res%onse 3ueues and some
contents o' t$e P/0 are in t$e ./0*
#ee Also&
7Introduction to an (rac)e Instance7 'or more in'ormation a"out an (rac)e
instance
7(vervie+ o' t$e Pro,ram /)o"a) 0reas7
7Dis%atc$er ;e3uest and ;es%onse =ueues7
,he #*A-MA.-#!/0 !nitiali1ation 2arameter
#$e ./0 com%rises a num"er o' memor& components1 +$ic$ are %oo)s o' memor& used to satis'& a
%articu)ar c)ass o' memor& a))ocation re3uests* 9xam%)es o' memor& com%onents inc)ude t$e s$ared %oo)
2used to a))ocate memor& 'or .=L and PL:.=L execution41 t$e >ava %oo) 2used 'or >ava o">ects and ot$er
>ava execution memor&41 and t$e "u''er cac$e 2used 'or cac$in, disk ")ocks4* 0)) ./0 com%onents
a))ocate and dea))ocate s%ace in units o' granles* (rac)e Data"ase tracks ./0 memor& use in interna)
num"ers o' ,ranu)es 'or eac$ ./0 com%onent*
/ranu)e si?e is determined "& tota) ./0 si?e* (n most %)at'orms1 t$e si?e o' a ,ranu)e is 4 MB i' t$e tota)
./0 si?e is )ess t$an 1 /B1 and ,ranu)e si?e is 1@MB 'or )ar,er ./0s* .ome %)at'orm de%endencies arise*
For exam%)e1 on A2-"it Bindo+s1 t$e ,ranu)e si?e is 6 M 'or ./0s )ar,er t$an 1 /B*
(rac)e Data"ase can set )imits on $o+ muc$ virtua) memor& t$e data"ase uses 'or t$e ./0* It can start
instances +it$ minima) memor& and a))o+ t$e instance to use more memor& "& ex%andin, t$e memor&
a))ocated 'or ./0 com%onents1 u% to a maximum determined "& t$e SGA_MAX_SIZE initia)i?ation %arameter*
I' t$e va)ue 'or SGA_MAX_SIZE in t$e initia)i?ation %arameter 'i)e or server %arameter 'i)e 2SPFILE4 is )ess
t$an t$e sum t$e memor& a))ocated 'or a)) com%onents1 eit$er ex%)icit)& in t$e %arameter 'i)e or "&
de'au)t1 at t$e time t$e instance is initia)i?ed1 t$en t$e data"ase i,nores t$e settin, 'or SGA_MAX_SIZE*
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
3 of 21 5/6/2014 11:22 AM
For o%tima) %er'ormance in most s&stems1 t$e entire ./0 s$ou)d 'it in rea) memor&* I' it does not1 and i'
virtua) memor& is used to store %arts o' it1 t$en overa)) data"ase s&stem %er'ormance can decrease
dramatica))&* #$e reason 'or t$is is t$at %ortions o' t$e ./0 are %a,ed 2+ritten to and read 'rom disk4 "&
t$e o%eratin, s&stem* #$e amount o' memor& dedicated to a)) s$ared areas in t$e ./0 a)so $as
%er'ormance im%act*
#$e si?e o' t$e ./0 is determined "& severa) initia)i?ation %arameters* #$e 'o))o+in, %arameters $ave
t$e ,reatest e''ect on ./0 si?e-
2arameter Description
DB_CACHE_SIZE #$e si?e o' t$e cac$e o' standard ")ocks*
LOG_BUFFER #$e num"er o' "&tes a))ocated 'or t$e redo )o, "u''er*
SHARED_POOL_SIZE #$e si?e in "&tes o' t$e area devoted to s$ared .=L and PL:.=L statements*
LARGE_POOL_SIZE #$e si?e o' t$e )ar,e %oo)5 t$e de'au)t is 0*
JAVA_POOL_SIZE #$e si?e o' t$e <ava %oo)*
Atomatic #hare" Memory Management
In %revious data"ase re)eases1 a data"ase administrator 2DB04 +as re3uired to manua))& s%eci'&
di''erent ./0 com%onent si?es "& settin, a num"er o' initia)i?ation %arameters1 inc)udin, t$e
SHARED_POOL_SIZE1 DB_CACHE_SIZE1 JAVA_POOL_SIZE1 and LARGE_POOL_SIZE %arameters* (rac)e Data"ase 10,
inc)udes t$e 0utomatic .$ared Memor& Mana,ement 'eature +$ic$ sim%)i'ies t$e ./0 memor&
mana,ement si,ni'icant)&* In (rac)e Data"ase 10,1 a DB0 can sim%)& s%eci'& t$e tota) amount o' ./0
memor& avai)a")e to an instance usin, t$e SGA_TARGET initia)i?ation %arameter and t$e (rac)e Data"ase
+i)) automatica))& distri"ute t$is memor& amon, various su"com%onents to ensure most e''ective
memor& uti)i?ation*
B$en automatic ./0 memor& mana,ement is ena")ed1 t$e si?es o' t$e di''erent ./0 com%onents are
')exi")e and can ada%t to t$e needs o' a +ork)oad +it$out re3uirin, an& additiona) con'i,uration* #$e
data"ase automatica))& distri"utes t$e avai)a")e memor& amon, t$e various com%onents as re3uired1
a))o+in, t$e s&stem to maximi?e t$e use o' a)) avai)a")e ./0 memor&*
Consider a manua) con'i,uration in +$ic$ 1 /B o' memor& is avai)a")e 'or t$e ./0 and distri"uted to t$e
'o))o+in, initia)i?ation %arameters-
SHARED_POOL_SIZE=128M
DB_CACHE_SIZE=896M
I' an a%%)ication attem%ts to a))ocate more t$an 126 MB o' memor& 'rom t$e s$ared %oo)1 an error is
raised t$at indicates t$at t$e avai)a")e s$ared %oo) $as "een ex$austed* #$ere cou)d "e 'ree memor& in
t$e "u''er cac$e1 "ut t$is memor& is not accessi")e to t$e s$ared %oo)* Cou +ou)d $ave to manua))&
resi?e t$e "u''er cac$e and t$e s$ared %oo) to +ork around t$is %ro")em*
Bit$ automatic ./0 mana,ement1 &ou can sim%)& set t$e SGA_TARGET initia)i?ation %arameter to 1G* I' an
a%%)ication needs more s$ared %oo) memor&1 it can o"tain t$at memor& "& ac3uirin, it 'rom t$e 'ree
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
4 of 21 5/6/2014 11:22 AM
memor& in t$e "u''er cac$e*
.ettin, a sin,)e %arameter ,reat)& sim%)i'ies t$e administration task* Cou s%eci'& on)& t$e amount o' ./0
memor& t$at an instance $as avai)a")e and 'or,et a"out t$e si?es o' individua) com%onents* No out o'
memor& errors are ,enerated un)ess t$e s&stem $as actua))& run out o' memor&*
0utomatic ./0 mana,ement can en$ance +ork)oad %er'ormance +it$out re3uirin, an& additiona)
resources or manua) tunin, e''ort* Bit$ manua) con'i,uration o' t$e ./01 it is %ossi")e t$at com%i)ed
.=L statements 're3uent)& a,e out o' t$e s$ared %oo) "ecause o' its inade3uate si?e* #$is can increase
t$e 're3uenc& o' $ard %arses1 )eadin, to reduced %er'ormance* B$en automatic ./0 mana,ement is
ena")ed1 t$e interna) tunin, a),orit$m monitors t$e %er'ormance o' t$e +ork)oad1 increasin, t$e s$ared
%oo) i' it determines t$e increase +i)) reduce t$e num"er o' %arses re3uired*
#ee Also&
(rac)e Data"ase 0dministrator8s /uide
(rac)e Data"ase Per'ormance #unin, /uide
,he #*A-,AR*0, !nitiali1ation 2arameter
#$e SGA_TARGET initia)i?ation %arameter re')ects t$e tota) si?e o' t$e ./0 and inc)udes memor& 'or t$e
'o))o+in, com%onents-
Fixed ./0 and ot$er interna) a))ocations needed "& t$e (rac)e Data"ase instance
#$e )o, "u''er
#$e s$ared %oo)
#$e <ava %oo)
#$e "u''er cac$e
#$e kee% and rec&c)e "u''er cac$es 2i' s%eci'ied4
Nonstandard ")ock si?e "u''er cac$es 2i' s%eci'ied4
#$e .treams %oo)
It is si,ni'icant t$at SGA_TARGET inc)udes t$e entire memor& 'or t$e ./01 in contrast to ear)ier re)eases in
+$ic$ memor& 'or t$e interna) and 'ixed ./0 +as added to t$e sum o' t$e con'i,ured ./0 memor&
%arameters* #$us1 SGA_TARGET ,ives &ou %recise contro) over t$e si?e o' t$e s$ared memor& re,ion
a))ocated "& t$e data"ase* I' SGA_TARGET is set to a va)ue ,reater t$an SGA_MAX_SIZE at startu%1 t$en t$e
)atter is "um%ed u% to accommodate SGA_TARGET*
3ote&
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
5 of 21 5/6/2014 11:22 AM
Do not d&namica))& set or unset t$e SGA_TARGET %arameter* #$is s$ou)d "e set on)&
at startu%*
Atomatically Manage" #*A Components
B$en &ou set a va)ue 'or SGA_TARGET1 (rac)e Data"ase 10, automatica))& si?es t$e most common)&
con'i,ured com%onents1 inc)udin,-
#$e s$ared %oo) 2'or .=L and PL:.=L execution4
#$e <ava %oo) 2'or <ava execution state4
#$e )ar,e %oo) 2'or )ar,e a))ocations suc$ as ;M0N "acku% "u''ers4
#$e "u''er cac$e
#$e .treams %oo)
Cou need not set t$e si?e o' an& o' t$ese com%onents ex%)icit)&* B& de'au)t t$e %arameters 'or t$ese
com%onents +i)) a%%ear to $ave va)ues o' ?ero* B$enever a com%onent needs memor&1 it can re3uest
t$at it "e trans'erred 'rom anot$er com%onent "& +a& o' t$e interna) automatic tunin, mec$anism* #$is
trans'er o' memor& occurs trans%arent)&1 +it$out user intervention*
#$e %er'ormance o' eac$ o' t$ese automatica))& si?ed com%onents is monitored "& t$e (rac)e Data"ase
instance* #$e instance uses interna) vie+s and statistics to determine $o+ to distri"ute memor&
o%tima))& amon, t$e com%onents* 0s t$e +ork)oad c$an,es1 memor& is redistri"uted to ensure o%tima)
%er'ormance* #o ca)cu)ate t$e o%tima) distri"ution o' memor&1 t$e data"ase uses an a),orit$m t$at takes
into consideration "ot$ )on,-term and s$ort-term trends*
Manally Manage" #*A Components
#$ere are a 'e+ ./0 com%onents +$ose si?es are not automatica))& ad>usted* #$e administrator needs
to s%eci'& t$e si?es o' t$ese com%onents ex%)icit)&1 i' needed "& t$e a%%)ication* .uc$ com%onents are-
Dee%:;ec&c)e "u''er cac$es 2contro))ed "& DB_KEEP_CACHE_SIZE and DB_RECYCLE_CACHE_SIZE4
0dditiona) "u''er cac$es 'or non-standard ")ock si?es 2contro))ed "& DB_nK_CACHE_SIZE1 n E F21 41 61
1@1 A2G4
#$e si?es o' t$ese com%onents is determined "& t$e administrator-de'ined va)ue o' t$eir corres%ondin,
%arameters* #$ese va)ues can1 o' course1 "e c$an,ed an& time eit$er usin, 9nter%rise Mana,er or 'rom
t$e command )ine +it$ an ALTER SYSTEM statement*
#$e memor& consumed "& manua))& si?ed com%onents reduces t$e amount o' memor& avai)a")e 'or
automatic ad>ustment* For exam%)e1 in t$e 'o))o+in, con'i,uration-
SGA_TARGET = 26M
DB_8K_CACHE_SIZE = !2M
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
6 of 21 5/6/2014 11:22 AM
#$e instance $as on)& 224 MB 22H@ - A24 remainin, to "e distri"uted amon, t$e automatica))& si?ed
com%onents*
2ersistence o) Atomatically ,ne" 4ales
(rac)e Data"ase remem"ers t$e si?es o' t$e automatica))& tuned com%onents across instance s$utdo+ns
i' &ou are usin, a server %arameter 'i)e 2SPFILE4* 0s a resu)t1 t$e s&stem does need to )earn t$e
c$aracteristics o' t$e +ork)oad a,ain eac$ time an instance is started* It can "e,in +it$ in'ormation 'rom
t$e %ast instance and continue eva)uatin, +ork)oad +$ere it )e't o'' at t$e )ast s$utdo+n*
A""ing *ranles an" ,rac5ing Component #i1e
0 data"ase administrator ex%ands t$e ./0 use o' a com%onent +it$ an ALTER SYSTEM statement to
modi'& t$e va)ues o' t$e initia)i?ation %arameters associated +it$ t$e res%ective com%onents* (rac)e
Data"ase rounds u% t$e ne+)& s%eci'ied si?e to t$e nearest mu)ti%)e o' 1@MB and adds or removes
,ranu)es to meet t$e tar,et si?e* #$e data"ase must $ave enou,$ 'ree ,ranu)es to satis'& t$e re3uest*
0s )on, as t$e current amount o' ./0 memor& is )ess t$an SGA_MAX_SIZE1 t$e data"ase can a))ocate more
,ranu)es unti) t$e ./0 si?e reac$es SGA_MAX_SIZE*
#$e ,ranu)e si?e t$at is current)& "ein, used 'or t$e ./0 'or eac$ com%onent can "e vie+ed in t$e vie+
V"SGAI#FO* #$e si?e o' eac$ com%onent and t$e time and t&%e o' t$e )ast resi?e o%eration %er'ormed on
eac$ com%onent can "e vie+ed in t$e vie+ V"SGA_DY#AMIC_COMPO#E#TS* #$e data"ase maintains a circu)ar
"u''er o' t$e )ast 400 resi?e o%erations made to ./0 com%onents* Cou can vie+ t$e circu)ar "u''er in t$e
V"SGA_RESIZE_OPS vie+*
3ote&
I' &ou s%eci'& a si?e 'or a com%onent t$at is not a mu)ti%)e o' ,ranu)e si?e1 t$en
(rac)e rounds t$e s%eci'ied si?e u% to t$e nearest mu)ti%)e* For exam%)e1 i' t$e
,ranu)e si?e is 4 MB and &ou s%eci'& DB_CACHE_SIZE as 10 MB1 &ou +i)) actua))& "e
a))ocated 12 MB*
#ee Also&
(rac)e Data"ase 0dministrator8s /uide 'or in'ormation on a))ocatin, memor&
(rac)e Data"ase 2 Da& DB0 'or in'ormation on s$o+in, t$e ./0 si?e +it$
9nter%rise Mana,er
.=LIP)us User8s /uide and ;e'erence 'or in'ormation on dis%)a&in, t$e ./0
si?e +it$ .=LIP)us
(rac)e Data"ase ;e'erence 'or in'ormation on V"SGASTAT
Cour (rac)e insta))ation or user8s ,uide 'or in'ormation s%eci'ic to &our
o%eratin, s&stem
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
7 of 21 5/6/2014 11:22 AM
Database 6))er Cache
#$e data"ase "u''er cac$e is t$e %ortion o' t$e ./0 t$at $o)ds co%ies o' data ")ocks read 'rom data'i)es*
0)) user %rocesses concurrent)& connected to t$e instance s$are access to t$e data"ase "u''er cac$e*
#$e data"ase "u''er cac$e and t$e s$ared .=L cac$e are )o,ica))& se,mented into mu)ti%)e sets* #$is
or,ani?ation into mu)ti%)e sets reduces contention on mu)ti%rocessor s&stems*
Organi1ation o) the Database 6))er Cache
#$e "u''ers in t$e cac$e are or,ani?ed in t+o )ists- t$e +rite )ist and t$e )east recent)& used 2L;U4 )ist*
#$e (rite list $o)ds dirt& "u''ers1 +$ic$ contain data t$at $as "een modi'ied "ut $as not &et "een
+ritten to disk* #$e 7R8 list $o)ds 'ree "u''ers1 %inned "u''ers1 and dirt& "u''ers t$at $ave not &et "een
moved to t$e +rite )ist* $ree b))ers do not contain an& use'u) data and are avai)a")e 'or use* 2inne"
b))ers are current)& "ein, accessed*
B$en an (rac)e %rocess accesses a "u''er1 t$e %rocess moves t$e "u''er to t$e most recent)& used
2M;U4 end o' t$e L;U )ist* 0s more "u''ers are continua))& moved to t$e M;U end o' t$e L;U )ist1 dirt&
"u''ers a,e to+ard t$e L;U end o' t$e L;U )ist*
#$e 'irst time an (rac)e user %rocess re3uires a %articu)ar %iece o' data1 it searc$es 'or t$e data in t$e
data"ase "u''er cac$e* I' t$e %rocess 'inds t$e data a)read& in t$e cac$e 2a cache hit41 it can read t$e
data direct)& 'rom memor&* I' t$e %rocess cannot 'ind t$e data in t$e cac$e 2a cache miss41 it must
co%& t$e data ")ock 'rom a data'i)e on disk into a "u''er in t$e cac$e "e'ore accessin, t$e data*
0ccessin, data t$rou,$ a cac$e $it is 'aster t$an data access t$rou,$ a cac$e miss*
Be'ore readin, a data ")ock into t$e cac$e1 t$e %rocess must 'irst 'ind a 'ree "u''er* #$e %rocess
searc$es t$e L;U )ist1 startin, at t$e )east recent)& used end o' t$e )ist* #$e %rocess searc$es eit$er unti)
it 'inds a 'ree "u''er or unti) it $as searc$ed t$e t$res$o)d )imit o' "u''ers*
I' t$e user %rocess 'inds a dirt& "u''er as it searc$es t$e L;U )ist1 it moves t$at "u''er to t$e +rite )ist
and continues to searc$* B$en t$e %rocess 'inds a 'ree "u''er1 it reads t$e data ")ock 'rom disk into t$e
"u''er and moves t$e "u''er to t$e M;U end o' t$e L;U )ist*
I' an (rac)e user %rocess searc$es t$e t$res$o)d )imit o' "u''ers +it$out 'indin, a 'ree "u''er1 t$e
%rocess sto%s searc$in, t$e L;U )ist and si,na)s t$e DBB0 "ack,round %rocess to +rite some o' t$e
dirt& "u''ers to disk*
#ee Also&
7Data"ase Briter Process 2DBBn47 'or more in'ormation a"out DBBn %rocesses
,he 7R8 Algorithm an" $ll ,able #cans
B$en t$e user %rocess is %er'ormin, a 'u)) ta")e scan1 it reads t$e ")ocks o' t$e ta")e into "u''ers and
%uts t$em on t$e L;U end 2instead o' t$e M;U end4 o' t$e L;U )ist* #$is is "ecause a 'u))& scanned ta")e
usua))& is needed on)& "rie')&1 so t$e ")ocks s$ou)d "e moved out 3uick)& to )eave more 're3uent)& used
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
8 of 21 5/6/2014 11:22 AM
")ocks in t$e cac$e*
Cou can contro) t$is de'au)t "e$avior o' ")ocks invo)ved in ta")e scans on a ta")e-"&-ta")e "asis* #o
s%eci'& t$at ")ocks o' t$e ta")e are to "e %)aced at t$e M;U end o' t$e )ist durin, a 'u)) ta")e scan1 use
t$e CACHE c)ause +$en creatin, or a)terin, a ta")e or c)uster* Cou can s%eci'& t$is "e$avior 'or sma))
)ooku% ta")es or )ar,e static $istorica) ta")es to avoid I:( on su"se3uent accesses o' t$e ta")e*
#ee Also&
(rac)e Data"ase .=L ;e'erence 'or in'ormation a"out t$e CACHE c)ause
#i1e o) the Database 6))er Cache
(rac)e su%%orts mu)ti%)e ")ock si?es in a data"ase* #$e standard ")ock si?e is used 'or t$e SYSTEM
ta")es%ace* Cou s%eci'& t$e standard ")ock si?e "& settin, t$e initia)i?ation %arameter DB_BLOCK_SIZE*
Le,itimate va)ues are 'rom 2D to A2D*
(%tiona))&1 &ou can a)so set t$e si?e 'or t+o additiona) "u''er %oo)s1 KEEP and RECYCLE1 "& settin,
DB_KEEP_CACHE_SIZE and DB_RECYCLE_CACHE_SIZE* #$ese t$ree %arameters are inde%endent o' one anot$er*
#ee Also&
7Mu)ti%)e Bu''er Poo)s7 'or more in'ormation a"out t$e KEEP and RECYCLE "u''er
%oo)s
#$e si?es and num"ers o' non-standard ")ock si?e "u''ers are s%eci'ied "& t$e 'o))o+in, %arameters-
DB_2K_CACHE_SIZE
DB_$K_CACHE_SIZE
DB_8K_CACHE_SIZE
DB_16K_CACHE_SIZE
DB_!2K_CACHE_SIZE
9ac$ %arameter s%eci'ies t$e si?e o' t$e cac$e 'or t$e corres%ondin, ")ock si?e*
3ote&
P)at'orm-s%eci'ic restrictions re,ardin, t$e maximum ")ock si?e a%%)&1 so some o'
t$ese si?es mi,$t not "e a))o+ed on some %)at'orms*
0+ample o) #etting 6loc5 an" Cache #i1es
DB_BLOCK_SIZE=$%96
DB_CACHE_SIZE=1%2$M
DB_2K_CACHE_SIZE=26M
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
9 of 21 5/6/2014 11:22 AM
DB_8K_CACHE_SIZE=12M
In t$e %recedin, exam%)e1 t$e %arameter DB_BLOCK_SIZE sets t$e standard ")ock si?e o' t$e data"ase to
4D* #$e si?e o' t$e cac$e o' standard ")ock si?e "u''ers is 1024MB* 0dditiona))&1 2D and 6D cac$es are
a)so con'i,ured1 +it$ si?es o' 2H@MB and H12MB1 res%ective)&*
3ote&
#$e DB_nK_CACHE_SIZE %arameters cannot "e used to si?e t$e cac$e 'or t$e
standard ")ock si?e* I' t$e va)ue o' DB_BLOCK_SIZE is nD1 it is i))e,a) to set
DB_nK_CACHE_SIZE* #$e si?e o' t$e cac$e 'or t$e standard ")ock si?e is a)+a&s
determined 'rom t$e va)ue o' DB_CACHE_SIZE*
#$e cac$e $as a )imited si?e1 so not a)) t$e data on disk can 'it in t$e cac$e* B$en t$e cac$e is 'u))1
su"se3uent cac$e misses cause (rac)e to +rite dirt& data a)read& in t$e cac$e to disk to make room 'or
t$e ne+ data* 2I' a "u''er is not dirt&1 it does not need to "e +ritten to disk "e'ore a ne+ ")ock can "e
read into t$e "u''er*4 .u"se3uent access to an& data t$at +as +ritten to disk resu)ts in additiona) cac$e
misses*
#$e si?e o' t$e cac$e a''ects t$e )ike)i$ood t$at a re3uest 'or data resu)ts in a cac$e $it* I' t$e cac$e is
)ar,e1 it is more )ike)& to contain t$e data t$at is re3uested* Increasin, t$e si?e o' a cac$e increases t$e
%ercenta,e o' data re3uests t$at resu)t in cac$e $its*
Cou can c$an,e t$e si?e o' t$e "u''er cac$e +$i)e t$e instance is runnin,1 +it$out $avin, to s$ut do+n
t$e data"ase* Do t$is +it$ t$e ALTER SYSTEM statement* For more in'ormation1 see 7Contro) o' t$e ./08s
Use o' Memor&7*
Use t$e 'ixed vie+ V"BUFFER_POOL to track t$e si?es o' t$e di''erent cac$e com%onents and an& %endin,
resi?e o%erations*
#ee Also&
(rac)e Data"ase Per'ormance #unin, /uide 'or in'ormation a"out tunin, t$e
"u''er cac$e
Mltiple 6))er 2ools
Cou can con'i,ure t$e data"ase "u''er cac$e +it$ se%arate "u''er %oo)s t$at eit$er kee% data in t$e
"u''er cac$e or make t$e "u''ers avai)a")e 'or ne+ data immediate)& a'ter usin, t$e data ")ocks*
Particu)ar sc$ema o">ects 2ta")es1 c)usters1 indexes1 and %artitions4 can t$en "e assi,ned to t$e
a%%ro%riate "u''er %oo) to contro) t$e +a& t$eir data ")ocks a,e out o' t$e cac$e*
#$e KEEP "u''er %oo) retains t$e sc$ema o">ect8s data ")ocks in memor&*
#$e RECYCLE "u''er %oo) e)iminates data ")ocks 'rom memor& as soon as t$e& are no )on,er
needed*
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
10 of 21 5/6/2014 11:22 AM
#$e DEFAULT "u''er %oo) contains data ")ocks 'rom sc$ema o">ects t$at are not assi,ned to an&
"u''er %oo)1 as +e)) as sc$ema o">ects t$at are ex%)icit)& assi,ned to t$e DEFAULT %oo)*
#$e initia)i?ation %arameters t$at con'i,ure t$e KEEP and RECYCLE "u''er %oo)s are DB_KEEP_CACHE_SIZE and
DB_RECYCLE_CACHE_SIZE*
3ote&
Mu)ti%)e "u''er %oo)s are on)& avai)a")e 'or t$e standard ")ock si?e* Non-standard
")ock si?e cac$es $ave a sin,)e DEFAULT %oo)*
#ee Also&
(rac)e Data"ase Per'ormance #unin, /uide 'or more in'ormation a"out
mu)ti%)e "u''er %oo)s
(rac)e Data"ase .=L ;e'erence 'or t$e s&ntax o' t$e BUFFER_POOL c)ause o'
t$e STORAGE c)ause
Re"o 7og 6))er
#$e re"o log b))er is a circu)ar "u''er in t$e ./0 t$at $o)ds in'ormation a"out c$an,es made to t$e
data"ase* #$is in'ormation is stored in re"o entries* ;edo entries contain t$e in'ormation necessar& to
reconstruct1 or redo1 c$an,es made to t$e data"ase "& I#SERT1 UPDATE1 DELETE1 CREATE1 ALTER1 or DROP
o%erations* ;edo entries are used 'or data"ase recover&1 i' necessar&*
;edo entries are co%ied "& (rac)e data"ase %rocesses 'rom t$e user8s memor& s%ace to t$e redo )o,
"u''er in t$e ./0* #$e redo entries take u% continuous1 se3uentia) s%ace in t$e "u''er* #$e "ack,round
%rocess L/B; +rites t$e redo )o, "u''er to t$e active redo )o, 'i)e 2or ,rou% o' 'i)es4 on disk*
#ee Also&
7Lo, Briter Process 2L/B;47 'or more in'ormation a"out $o+ t$e redo )o,
"u''er is +ritten to disk
(rac)e Data"ase Backu% and ;ecover& Basics 'or in'ormation a"out redo )o,
'i)es and ,rou%s
#$e initia)i?ation %arameter LOG_BUFFER determines t$e si?e 2in "&tes4 o' t$e redo )o, "u''er* In ,enera)1
)ar,er va)ues reduce )o, 'i)e I:(1 %articu)ar)& i' transactions are )on, or numerous* #$e de'au)t settin, is
eit$er H12 ki)o"&tes 2DB4 or 126 DB times t$e settin, o' t$e CPU_COU#T %arameter1 +$ic$ever is ,reater*
#hare" 2ool
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
11 of 21 5/6/2014 11:22 AM
#$e s$ared %oo) %ortion o' t$e ./0 contains t$e )i"rar& cac$e1 t$e dictionar& cac$e1 "u''ers 'or %ara))e)
execution messa,es1 and contro) structures*
#$e tota) si?e o' t$e s$ared %oo) is determined "& t$e initia)i?ation %arameter SHARED_POOL_SIZE* #$e
de'au)t va)ue o' t$is %arameter is 6MB on A2-"it %)at'orms and @4MB on @4-"it %)at'orms* Increasin, t$e
va)ue o' t$is %arameter increases t$e amount o' memor& reserved 'or t$e s$ared %oo)*
7ibrary Cache
#$e )i"rar& cac$e inc)udes t$e s$ared .=L areas1 %rivate .=L areas 2in t$e case o' a s$ared server
con'i,uration41 PL:.=L %rocedures and %acka,es1 and contro) structures suc$ as )ocks and )i"rar& cac$e
$and)es*
.$ared .=L areas are accessi")e to a)) users1 so t$e )i"rar& cac$e is contained in t$e s$ared %oo) +it$in
t$e ./0*
#hare" #97 Areas an" 2ri'ate #97 Areas
(rac)e re%resents eac$ .=L statement it runs +it$ a s$ared .=L area and a %rivate .=L area* (rac)e
reco,ni?es +$en t+o users are executin, t$e same .=L statement and reuses t$e s$ared .=L area 'or
t$ose users* Ho+ever1 eac$ user must $ave a se%arate co%& o' t$e statement8s %rivate .=L area*
#hare" #97 Areas
0 s$ared .=L area contains t$e %arse tree and execution %)an 'or a ,iven .=L statement* (rac)e saves
memor& "& usin, one s$ared .=L area 'or .=L statements run mu)ti%)e times1 +$ic$ o'ten $a%%ens
+$en man& users run t$e same a%%)ication*
(rac)e a))ocates memor& 'rom t$e s$ared %oo) +$en a ne+ .=L statement is %arsed1 to store in t$e
s$ared .=L area* #$e si?e o' t$is memor& de%ends on t$e com%)exit& o' t$e statement* I' t$e entire
s$ared %oo) $as a)read& "een a))ocated1 (rac)e can dea))ocate items 'rom t$e %oo) usin, a modi'ied L;U
2)east recent)& used4 a),orit$m unti) t$ere is enou,$ 'ree s%ace 'or t$e ne+ statement8s s$ared .=L
area* I' (rac)e dea))ocates a s$ared .=L area1 t$e associated .=L statement must "e re%arsed and
reassi,ned to anot$er s$ared .=L area at its next execution*
#ee Also&
7Private .=L 0rea7
(rac)e Data"ase Per'ormance #unin, /uide
27:#97 2rogram 8nits an" the #hare" 2ool
(rac)e %rocesses PL:.=L %ro,ram units 2%rocedures1 'unctions1 %acka,es1 anon&mous ")ocks1 and
data"ase tri,,ers4 muc$ t$e same +a& it %rocesses individua) .=L statements* (rac)e a))ocates a s$ared
area to $o)d t$e %arsed1 com%i)ed 'orm o' a %ro,ram unit* (rac)e a))ocates a %rivate area to $o)d va)ues
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
12 of 21 5/6/2014 11:22 AM
s%eci'ic to t$e session t$at runs t$e %ro,ram unit1 inc)udin, )oca)1 ,)o"a)1 and %acka,e varia")es 2a)so
kno+n as %acka,e instantiation4 and "u''ers 'or executin, .=L* I' more t$an one user runs t$e same
%ro,ram unit1 t$en a sin,)e1 s$ared area is used "& a)) users1 +$i)e eac$ user maintains a se%arate co%&
o' $is or $er %rivate .=L area1 $o)din, va)ues s%eci'ic to $is or $er session*
Individua) .=L statements contained +it$in a PL:.=L %ro,ram unit are %rocessed as descri"ed in t$e
%revious sections* Des%ite t$eir ori,ins +it$in a PL:.=L %ro,ram unit1 t$ese .=L statements use a
s$ared area to $o)d t$eir %arsed re%resentations and a %rivate area 'or eac$ session t$at runs t$e
statement*
Dictionary Cache
#$e data dictionar& is a co))ection o' data"ase ta")es and vie+s containin, re'erence in'ormation a"out
t$e data"ase1 its structures1 and its users* (rac)e accesses t$e data dictionar& 're3uent)& durin, .=L
statement %arsin,* #$is access is essentia) to t$e continuin, o%eration o' (rac)e*
#$e data dictionar& is accessed so o'ten "& (rac)e t$at t+o s%ecia) )ocations in memor& are desi,nated
to $o)d dictionar& data* (ne area is ca))ed t$e "ata "ictionary cache1 a)so kno+n as t$e ro( cache
"ecause it $o)ds data as ro+s instead o' "u''ers 2+$ic$ $o)d entire ")ocks o' data4* #$e ot$er area in
memor& to $o)d dictionar& data is t$e )i"rar& cac$e* 0)) (rac)e user %rocesses s$are t$ese t+o cac$es
'or access to data dictionar& in'ormation*
#ee Also&
C$a%ter J1 7#$e Data Dictionar&7
7Li"rar& Cac$e7
Allocation an" Rese o) Memory in the #hare" 2ool
In ,enera)1 an& item 2s$ared .=L area or dictionar& ro+4 in t$e s$ared %oo) remains unti) it is ')us$ed
accordin, to a modi'ied L;U a),orit$m* #$e memor& 'or items t$at are not "ein, used re,u)ar)& is 'reed
i' s%ace is re3uired 'or ne+ items t$at must "e a))ocated some s%ace in t$e s$ared %oo)* 0 modi'ied L;U
a),orit$m a))o+s s$ared %oo) items t$at are used "& man& sessions to remain in memor& as )on, as t$e&
are use'u)1 even i' t$e %rocess t$at ori,ina))& created t$e item terminates* 0s a resu)t1 t$e over$ead and
%rocessin, o' .=L statements associated +it$ a mu)tiuser (rac)e s&stem is minimi?ed*
B$en a .=L statement is su"mitted to (rac)e 'or execution1 (rac)e automatica))& %er'orms t$e 'o))o+in,
memor& a))ocation ste%s-
(rac)e c$ecks t$e s$ared %oo) to see i' a s$ared .=L area a)read& exists 'or an identica)
statement* I' so1 t$at s$ared .=L area is used 'or t$e execution o' t$e su"se3uent ne+ instances
o' t$e statement* 0)ternative)&1 i' t$ere is no s$ared .=L area 'or a statement1 (rac)e a))ocates a
ne+ s$ared .=L area in t$e s$ared %oo)* In eit$er case1 t$e user8s %rivate .=L area is associated
+it$ t$e s$ared .=L area t$at contains t$e statement*
1*
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
13 of 21 5/6/2014 11:22 AM
3ote&
0 s$ared .=L area can "e ')us$ed 'rom t$e s$ared %oo)1 even i' t$e s$ared
.=L area corres%onds to an o%en cursor t$at $as not "een used 'or some
time* I' t$e o%en cursor is su"se3uent)& used to run its statement1 (rac)e
re%arses t$e statement1 and a ne+ s$ared .=L area is a))ocated in t$e
s$ared %oo)*
(rac)e a))ocates a %rivate .=L area on "e$a)' o' t$e session* #$e )ocation o' t$e %rivate .=L area
de%ends on t$e t&%e o' connection esta")is$ed 'or t$e session*
2*
(rac)e a)so ')us$es a s$ared .=L area 'rom t$e s$ared %oo) in t$ese circumstances-
B$en t$e A#ALYZE statement is used to u%date or de)ete t$e statistics o' a ta")e1 c)uster1 or index1
a)) s$ared .=L areas t$at contain statements re'erencin, t$e ana)&?ed sc$ema o">ect are ')us$ed
'rom t$e s$ared %oo)* #$e next time a ')us$ed statement is run1 t$e statement is %arsed in a ne+
s$ared .=L area to re')ect t$e ne+ statistics 'or t$e sc$ema o">ect*
I' a sc$ema o">ect is re'erenced in a .=L statement and t$at o">ect is )ater modi'ied in an& +a&1
t$e s$ared .=L area is in'ali"ate" 2marked inva)id41 and t$e statement must "e re%arsed t$e
next time it is run*
I' &ou c$an,e a data"ase8s ,)o"a) data"ase name1 a)) in'ormation is ')us$ed 'rom t$e s$ared %oo)*
#$e administrator can manua))& ')us$ a)) in'ormation in t$e s$ared %oo) to assess t$e %er'ormance
2+it$ res%ect to t$e s$ared %oo)1 not t$e data "u''er cac$e4 t$at can "e ex%ected a'ter instance
startu% +it$out s$uttin, do+n t$e current instance* #$e statement ALTER SYSTEM FLUSH SHARED_POOL
is used to do t$is*
#ee Also&
7.$ared .=L 0reas and Private .=L 0reas7 'or more in'ormation a"out t$e
)ocation o' t$e %rivate .=L area
C$a%ter @1 7De%endencies 0mon, .c$ema (">ects7 'or more in'ormation
a"out t$e inva)idation o' .=L statements and de%endenc& issues
(rac)e Data"ase .=L ;e'erence 'or in'ormation a"out usin, ALTER SYSTEM
FLUSH SHARED_POOL
(rac)e Data"ase ;e'erence 'or in'ormation a"out V"S&L and V"S&LAREA
d&namic vie+s
7arge 2ool
#$e data"ase administrator can con'i,ure an o%tiona) memor& area ca))ed t$e large pool to %rovide
)ar,e memor& a))ocations 'or-
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
14 of 21 5/6/2014 11:22 AM
.ession memor& 'or t$e s$ared server and t$e (rac)e K0 inter'ace 2used +$ere transactions
interact +it$ more t$an one data"ase4
I:( server %rocesses
(rac)e "acku% and restore o%erations
B& a))ocatin, session memor& 'rom t$e )ar,e %oo) 'or s$ared server1 (rac)e K01 or %ara))e) 3uer& "u''ers1
(rac)e can use t$e s$ared %oo) %rimari)& 'or cac$in, s$ared .=L and avoid t$e %er'ormance over$ead
caused "& s$rinkin, t$e s$ared .=L cac$e*
In addition1 t$e memor& 'or (rac)e "acku% and restore o%erations1 'or I:( server %rocesses1 and 'or
%ara))e) "u''ers is a))ocated in "u''ers o' a 'e+ $undred ki)o"&tes* #$e )ar,e %oo) is "etter a")e to satis'&
suc$ )ar,e memor& re3uests t$an t$e s$ared %oo)*
#$e )ar,e %oo) does not $ave an L;U )ist* It is di''erent 'rom reserved s%ace in t$e s$ared %oo)1 +$ic$
uses t$e same L;U )ist as ot$er memor& a))ocated 'rom t$e s$ared %oo)*
#ee Also&
7.$ared .erver 0rc$itecture7 'or in'ormation a"out a))ocatin, session
memor& 'rom t$e )ar,e %oo) 'or t$e s$ared server
(rac)e Data"ase 0%%)ication Deve)o%er8s /uide - Fundamenta)s 'or
in'ormation a"out (rac)e K0
(rac)e Data"ase Per'ormance #unin, /uide 'or more in'ormation a"out t$e
)ar,e %oo)1 reserve s%ace in t$e s$ared %oo)1 and I:( server %rocesses
7(vervie+ o' Para))e) 9xecution7 'or in'ormation a"out a))ocatin, memor& 'or
%ara))e) execution
;a'a 2ool
<ava %oo) memor& is used in server memor& 'or a)) session-s%eci'ic <ava code and data +it$in t$e <LM*
<ava %oo) memor& is used in di''erent +a&s1 de%endin, on +$at mode t$e (rac)e server is runnin, in*
#$e <ava Poo) 0dvisor statistics %rovide in'ormation a"out )i"rar& cac$e memor& used 'or <ava and
%redict $o+ c$an,es in t$e si?e o' t$e <ava %oo) can a''ect t$e %arse rate* #$e <ava Poo) 0dvisor is
interna))& turned on +$en '()(*'(*+'_,-.-, is set to TYPICAL or $i,$er* #$ese statistics reset +$en t$e
advisor is turned o''*
#ee Also&
(rac)e Data"ase <ava Deve)o%er8s /uide
#treams 2ool
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
15 of 21 5/6/2014 11:22 AM
In a sin,)e data"ase1 &ou can s%eci'& t$at .treams memor& "e a))ocated 'rom a %oo) in t$e ./0 ca))ed
t$e .treams %oo)* #o con'i,ure t$e .treams %oo)1 s%eci'& t$e si?e o' t$e %oo) in "&tes usin, t$e
STREAMS_POOL_SIZE initia)i?ation %arameter* I' a .treams %oo) is not de'ined1 t$en one is created
automatica))& +$en .treams is 'irst used*
I' SGA_TARGET is set1 t$en t$e ./0 memor& 'or t$e .treams %oo) comes 'rom t$e ,)o"a) %oo) o' ./0* I'
SGA_TARGET is not set1 t$en ./0 'or t$e .treams %oo) is trans'erred 'rom t$e "u''er cac$e* #$is trans'er
takes %)ace on)& a'ter t$e 'irst use o' .treams* #$e amount trans'erred is 10M o' t$e s$ared %oo) si?e*
#ee Also&
(rac)e .treams Conce%ts and 0dministration
Control o) the #*A<s 8se o) Memory
D&namic ./0 %rovides externa) contro)s 'or increasin, and decreasin, (rac)e8s use o' %$&sica) memor&*
#o,et$er +it$ t$e d&namic "u''er cac$e1 s$ared %oo)1 and )ar,e %oo)1 d&namic ./0 a))o+s t$e 'o))o+in,-
#$e ./0 can ,ro+ in res%onse to a data"ase administrator statement1 u% to an o%eratin, s&stem
s%eci'ied maximum and t$e SGA_MAX_SIZE s%eci'ication*
#$e ./0 can s$rink in res%onse to a data"ase administrator statement1 to an (rac)e %rescri"ed
minimum1 usua))& an o%eratin, s&stem %re'erred )imit*
Bot$ t$e "u''er cac$e and t$e ./0 %oo)s can ,ro+ and s$rink at runtime accordin, to some
interna)1 (rac)e-mana,ed %o)ic&*
Other #*A !nitiali1ation 2arameters
Cou can use severa) initia)i?ation %arameters to contro) $o+ t$e ./0 uses memor&*
2hysical Memory
#$e LOCK_SGA %arameter )ocks t$e ./0 into %$&sica) memor&*
#*A #tarting A""ress
#$e SHARED_MEMORY_ADDRESS and HI_SHARED_MEMORY_ADDRESS %arameters s%eci'& t$e ./08s startin, address
at runtime* #$ese %arameters are rare)& used* For @4-"it %)at'orms1 HI_SHARED_MEMORY_ADDRESS s%eci'ies
t$e $i,$ order A2 "its o' t$e @4-"it address*
0+ten"e" 6))er Cache Mechanism
#$e USE_I#DIRECT_DATA_BUFFERS %arameter ena")es t$e use o' t$e extended "u''er cac$e mec$anism 'or
A2-"it %)at'orms t$at can su%%ort more t$an 4 /B o' %$&sica) memor&* (n %)at'orms t$at do not su%%ort
t$is muc$ %$&sica) memor&1 t$is %arameter is i,nored*
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
16 of 21 5/6/2014 11:22 AM
O'er'ie( o) the 2rogram *lobal Areas
0 program global area (2*A) is a memor& re,ion t$at contains data and contro) in'ormation 'or a
server %rocess* It is a nons$ared memor& created "& (rac)e +$en a server %rocess is started* 0ccess to
it is exc)usive to t$at server %rocess and is read and +ritten on)& "& (rac)e code actin, on "e$a)' o' it*
#$e tota) P/0 memor& a))ocated "& eac$ server %rocess attac$ed to an (rac)e instance is a)so re'erred
to as t$e aggregate" 2*A memor& a))ocated "& t$e instance*
#ee Also&
7Connections and .essions7 'or in'ormation a"out sessions
Content o) the 2*A
#$e content o' t$e P/0 memor& varies1 de%endin, on +$et$er t$e instance is runnin, t$e s$ared server
o%tion* But ,enera))& s%eakin,1 t$e P/0 memor& can "e c)assi'ied as 'o))o+s*
2ri'ate #97 Area
0 %rivate .=L area contains data suc$ as "ind in'ormation and runtime memor& structures* 9ac$ session
t$at issues a .=L statement $as a %rivate .=L area* 9ac$ user t$at su"mits t$e same .=L statement
$as $is or $er o+n %rivate .=L area t$at uses a sin,)e s$ared .=L area* #$us1 man& %rivate .=L areas
can "e associated +it$ t$e same s$ared .=L area*
#$e %rivate .=L area o' a cursor is itse)' divided into t+o areas +$ose )i'etimes are di''erent-
#$e %ersistent area1 +$ic$ contains1 'or exam%)e1 "ind in'ormation* It is 'reed on)& +$en t$e
cursor is c)osed*
#$e run-time area1 +$ic$ is 'reed +$en t$e execution is terminated*
(rac)e creates t$e runtime area as t$e 'irst ste% o' an execute re3uest* For I#SERT/ UPDATE1 and DELETE
statements1 (rac)e 'rees t$e runtime area a'ter t$e statement $as "een run* For 3ueries1 (rac)e 'rees
t$e runtime area on)& a'ter a)) ro+s are 'etc$ed or t$e 3uer& is cance)ed*
#$e )ocation o' a %rivate .=L area de%ends on t$e t&%e o' connection esta")is$ed 'or a session* I' a
session is connected t$rou,$ a dedicated server1 %rivate .=L areas are )ocated in t$e server %rocess8s
P/0* Ho+ever1 i' a session is connected t$rou,$ a s$ared server1 %art o' t$e %rivate .=L area is ke%t in
t$e ./0*
#ee Also&
7(vervie+ o' t$e Pro,ram /)o"a) 0reas7 'or in'ormation a"out t$e P/0
7Connections and .essions7 'or more in'ormation a"out sessions
7.=L Bork 0reas7 'or in'ormation a"out SELECT runtimes durin, a sort1
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
17 of 21 5/6/2014 11:22 AM
$as$->oin1 "itma% create1 or "itma% mer,e
(rac)e Data"ase Net .ervices 0dministrator8s /uide
Crsors an" #97 Areas
#$e a%%)ication deve)o%er o' an (rac)e %recom%i)er %ro,ram or (CI %ro,ram can ex%)icit)& o%en
crsors1 or $and)es to s%eci'ic %rivate .=L areas1 and use t$em as a named resource t$rou,$out t$e
execution o' t$e %ro,ram* ;ecursive cursors t$at (rac)e issues im%)icit)& 'or some .=L statements a)so
use s$ared .=L areas*
#$e mana,ement o' %rivate .=L areas is t$e res%onsi"i)it& o' t$e user %rocess* #$e a))ocation and
dea))ocation o' %rivate .=L areas de%ends )ar,e)& on +$ic$ a%%)ication too) &ou are usin,1 a)t$ou,$ t$e
num"er o' %rivate .=L areas t$at a user %rocess can a))ocate is a)+a&s )imited "& t$e initia)i?ation
%arameter OPE#_CURSORS* #$e de'au)t va)ue o' t$is %arameter is H0*
0 %rivate .=L area continues to exist unti) t$e corres%ondin, cursor is c)osed or t$e statement $and)e is
'reed* 0)t$ou,$ (rac)e 'rees t$e runtime area a'ter t$e statement com%)etes1 t$e %ersistent area
remains +aitin,* 0%%)ication deve)o%ers c)ose a)) o%en cursors t$at +i)) not "e used a,ain to 'ree t$e
%ersistent area and to minimi?e t$e amount o' memor& re3uired 'or users o' t$e a%%)ication*
#ee Also&
7Cursors7
#ession Memory
#ession memory is t$e memor& a))ocated to $o)d a session8s varia")es 2)o,on in'ormation4 and ot$er
in'ormation re)ated to t$e session* For a s$ared server1 t$e session memor& is s$ared and not %rivate*
#97 =or5 Areas
For com%)ex 3ueries 2'or exam%)e1 decision-su%%ort 3ueries41 a "i, %ortion o' t$e runtime area is
dedicated to +ork areas a))ocated "& memor&-intensive o%erators suc$ as t$e 'o))o+in,-
.ort-"ased o%erators 2order "&1 ,rou%-"&1 ro))u%1 +indo+ 'unction4
Has$->oin
Bitma% mer,e
Bitma% create
For exam%)e1 a sort o%erator uses a +ork area 2sometimes ca))ed t$e sort area4 to %er'orm t$e
in-memor& sort o' a set o' ro+s* .imi)ar)&1 a $as$->oin o%erator uses a +ork area 2a)so ca))ed t$e $as$
area4 to "ui)d a $as$ ta")e 'rom its )e't in%ut* I' t$e amount o' data to "e %rocessed "& t$ese t+o
o%erators does not 'it into a +ork area1 t$en t$e in%ut data is divided into sma))er %ieces* #$is a))o+s
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
18 of 21 5/6/2014 11:22 AM
some data %ieces to "e %rocessed in memor& +$i)e t$e rest are s%i))ed to tem%orar& disk stora,e to "e
%rocessed )ater* 0)t$ou,$ "itma% o%erators do not s%i)) to disk +$en t$eir associated +ork area is too
sma))1 t$eir com%)exit& is inverse)& %ro%ortiona) to t$e si?e o' t$eir +ork area* #$us1 t$ese o%erators run
'aster +it$ )ar,er +ork area*
#$e si?e o' a +ork area can "e contro))ed and tuned* /enera))&1 "i,,er data"ase areas can si,ni'icant)&
im%rove t$e %er'ormance o' a %articu)ar o%erator at t$e cost o' $i,$er memor& consum%tion* (%tima))&1
t$e si?e o' a +ork area is "i, enou,$ suc$ to accommodate t$e in%ut data and auxi)iar& memor&
structures a))ocated "& its associated .=L o%erator* I' not1 res%onse time increases1 "ecause %art o' t$e
in%ut data must "e s%i))ed to tem%orar& disk stora,e* In t$e extreme case1 i' t$e si?e o' a +ork area is
'ar too sma)) com%ared to t$e in%ut data si?e1 mu)ti%)e %asses over t$e data %ieces must "e %er'ormed*
#$is can dramatica))& increase t$e res%onse time o' t$e o%erator*
2*A Memory Management )or De"icate" Mo"e
Cou can automatica))& and ,)o"a))& mana,e t$e si?e o' .=L +ork areas* #$e data"ase administrator
sim%)& needs to s%eci'& t$e tota) si?e dedicated to P/0 memor& 'or t$e (rac)e instance "& settin, t$e
initia)i?ation %arameter PGA_AGGREGATE_TARGET* #$e s%eci'ied num"er 2'or exam%)e1 2/4 is a ,)o"a) tar,et
'or t$e (rac)e instance1 and (rac)e tries to ensure t$at t$e tota) amount o' P/0 memor& a))ocated
across a)) data"ase server %rocesses never exceeds t$is tar,et*
3ote&
In ear)ier re)eases1 t$e data"ase administrator contro))ed t$e maximum si?e o'
.=L +ork areas "& settin, t$e 'o))o+in, %arameters- SORT_AREA_SIZE1
HASH_AREA_SIZE1 BITMAP_MERGE_AREA_SIZE and CREATE_BITMAP_AREA_SIZE* .ettin, t$ese
%arameters is di''icu)t1 "ecause t$e maximum +ork area si?e is idea))& se)ected
'rom t$e data in%ut si?e and t$e tota) num"er o' +ork areas active in t$e s&stem*
#$ese t+o 'actors var& a )ot 'rom one +ork area to anot$er and 'rom one time to
anot$er* #$us1 t$e various 0_AREA_SIZE %arameters are $ard to tune under t$e "est
o' circumstances*
Bit$ PGA_AGGREGATE_TARGET1 si?in, o' +ork areas 'or a)) dedicated sessions is automatic and a))
0_AREA_SIZE %arameters are i,nored 'or t$ese sessions* 0t an& ,iven time1 t$e tota) amount o' P/0
memor& avai)a")e to active +ork areas on t$e instance is automatica))& derived 'rom t$e %arameter
PGA_AGGREGATE_TARGET* #$is amount is set to t$e va)ue o' PGA_AGGREGATE_TARGET minus t$e P/0 memor&
a))ocated "& ot$er com%onents o' t$e s&stem 2'or exam%)e1 P/0 memor& a))ocated "& sessions4* #$e
resu)tin, P/0 memor& is t$en a))otted to individua) active +ork areas "ased on t$eir s%eci'ic memor&
re3uirement*
3ote&
#$e initia)i?ation %arameter 1ORKAREA_SIZE_POLICY is a session- and s&stem-)eve)
%arameter t$at can take on)& t+o va)ues- MA#UAL or AUTO* #$e de'au)t is AUTO* #$e
data"ase administrator can set PGA_AGGREGATE_TARGET1 and t$en s+itc$ "ack and
'ort$ 'rom auto to manua) memor& mana,ement mode*
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
19 of 21 5/6/2014 11:22 AM
#$ere are 'ixed vie+s and co)umns t$at %rovide P/0 memor& use statistics* Most o' t$ese statistics are
ena")ed +$en PGA_AGGREGATE_TARGET is set*
.tatistics on a))ocation and use o' +ork area memor& can "e vie+ed in t$e 'o))o+in, d&namic
%er'ormance vie+s-
V"SYSSTAT
V"SESSTAT
V"PGASTAT
V"S&L_1ORKAREA
V"S&L_1ORKAREA_ACTIVE
#$e 'o))o+in, t$ree co)umns in t$e V"PROCESS vie+ re%ort t$e P/0 memor& a))ocated and used "&
an (rac)e %rocess-
PGA_USED_MEM
PGA_ALLOCATED_MEM
PGA_MAX_MEM
3ote&
#$e automatic P/0 memor& mana,ement mode a%%)ies to +ork areas a))ocated
"& "ot$ dedicated and s$ared (rac)e data"ase servers*
#ee Also&
(rac)e Data"ase ;e'erence 'or in'ormation a"out vie+s
(rac)e Data"ase Per'ormance #unin, /uide 'or in'ormation a"out usin,
t$ese vie+s
De"icate" an" #hare" #er'ers
Memor& a))ocation de%ends1 in some s%eci'ics1 on +$et$er t$e s&stem uses dedicated or s$ared server
arc$itecture* #a")e 6-1 s$o+s t$e di''erences*
,able 8%1 Di))erences in Memory Allocation 6et(een De"icate" an" #hare" #er'ers
Memory Area De"icate" #er'er #hare" #er'er
Nature o' session memor& Private .$ared
Location o' t$e %ersistent area P/0 ./0
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
20 of 21 5/6/2014 11:22 AM
Memory Area De"icate" #er'er #hare" #er'er
Location o' %art o' t$e runtime area 'or SELECT statements P/0 P/0
Location o' t$e runtime area 'or DML:DDL statements P/0 P/0
#o)t(are Co"e Areas
#o)t(are co"e areas are %ortions o' memor& used to store code t$at is "ein, run or can "e run*
(rac)e code is stored in a so't+are area t$at is t&%ica))& at a di''erent )ocation 'rom users8 %ro,ramsNa
more exc)usive or %rotected )ocation*
.o't+are areas are usua))& static in si?e1 c$an,in, on)& +$en so't+are is u%dated or reinsta))ed* #$e
re3uired si?e o' t$ese areas varies "& o%eratin, s&stem*
.o't+are areas are read on)& and can "e insta))ed s$ared or nons$ared* B$en %ossi")e1 (rac)e code is
s$ared so t$at a)) (rac)e users can access it +it$out $avin, mu)ti%)e co%ies in memor&* #$is resu)ts in a
savin, o' rea) main memor& and im%roves overa)) %er'ormance*
User %ro,rams can "e s$ared or nons$ared* .ome (rac)e too)s and uti)ities 2suc$ as (rac)e Forms and
.=LIP)us4 can "e insta))ed s$ared1 "ut some cannot* Mu)ti%)e instances o' (rac)e can use t$e same
(rac)e code area +it$ di''erent data"ases i' runnin, on t$e same com%uter*
3ote&
#$e o%tion o' insta))in, so't+are s$ared is not avai)a")e 'or a)) o%eratin, s&stems
2'or exam%)e1 on PCs o%eratin, Bindo+s4*
.ee &our (rac)e o%eratin, s&stem-s%eci'ic documentation 'or more in'ormation*
Previous Next
Co%&ri,$t O 1PPA1
200H1 (rac)e* 0)) ri,$ts reserved*
Le,a) Notices
Home Book
List
Contents Index Master
Index
Contact
Us
Memory Architecture http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htm
21 of 21 5/6/2014 11:22 AM

You might also like