Re: UGA inside PGA, yes or no?

From: Jonathan Lewis <>
Date: Thu, 2 Feb 2017 20:53:58 +0000
Message-ID: <MMXP123MB0911FDE0FD7CB9C9D848E111A54C0_at_MMXP123MB0911.GBRP123.PROD.OUTLOOK.COM>

  1. Tradition
  2. O/S is going outside my scope, but I think if the UGA is an arbitrarily growing subheap of the PGA then it's not safe to deallocate excess PGA memory because bits of the UGA might be inside the PGA chunk.

Jonathan Lewis

From: <> on behalf of Powell, Mark <> Sent: 02 February 2017 20:08:26
Subject: Re: UGA inside PGA, yes or no?

Just some ramblings

If the UGA in not part of the PGA then why does a dump of the PGA Heaps produce the UGA Heap as part of its output? What does physically stored in the PGA mean anyway in this context since the PGA as far as I know is not a single contiguous chunk of memory to begin with. Aren't the posted blocks just pointers and sizes of chunks of memory allocated from available memory on request? So isn't the UGA location (PGA vs SGA) just a logical location when not stored in the SGA? With dedicated server Oracle just takes the memory for the UGA out of the same pool as the PGA hence logically it is in the PGA.

From: <> on behalf of Stefan Koehler <> Sent: Thursday, February 2, 2017 1:43:26 PM To:; ORACLE-L
Subject: Re: UGA inside PGA, yes or no?

Hey Luis,
so what is your question?

Yes, Tanel is right (as always). You can cross-check this on your own if you dump the PGA heaps. Here is an example from Oracle 12.2.

HEAP DUMP heap name="pga heap" desc=0x7f0aba7ba260  extent sz=0x20c0 alt=256 het=32767 rec=0 flg=0x2 opc=0  parent=(nil) owner=(nil) nex=(nil) xsz=0x1fff0 heap=(nil) <<< Top-Level PGA heap as no parent ...
HEAP DUMP heap name="diag pga" desc=0x7f0aba7757b0  extent sz=0x1040 alt=32767 het=32767 rec=0 flg=0x3 opc=0  parent=0x7f0aba7ba260 owner=(nil) nex=(nil) xsz=0x70228 heap=(nil) <<< Sub-Heap of PGA heap (0x7f0aba7ba260) ...
HEAP DUMP heap name="top uga heap" desc=0x7f0aba7bc920  extent sz=0xffc0 alt=288 het=32767 rec=0 flg=0x2 opc=0  parent=(nil) owner=(nil) nex=(nil) xsz=0xfff8 heap=(nil) <<< Top-Level UGA heap as no parent (= not in PGA heap) ...

Best Regards
Stefan Koehler

Independent Oracle performance consultant and researcher Website:
Twitter: _at_OracleSK
Upcoming online seminar:

> Luis Santos <> hat am 2. Februar 2017 um 19:20 geschrieben:
> Nearly all general articles about UGA and PGA states that UGA is stored in the PGA , when using dedicated server.
> But in this deep old article, Tanel Poder states (look the first comment from Martin and Tanel's reply) that UGA is not physically inside PGA
> anymore...
> --
> Att
> Luis Santos


Received on Thu Feb 02 2017 - 21:53:58 CET

Original text of this message