RE: V$SGASTAT

  • From: "Powell, Mark" <mark.powell2@xxxxxx>
  • To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 11 Mar 2014 17:43:30 +0000

Stephan, I believe that part of the allocated memory that is shown as used by 
v$sgastat can in fact be freed if determined necessary by Oracle.  I think you 
can see this via sys.x$ksmsp.


From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Uzzell, Stephan
Sent: Tuesday, March 11, 2014 9:46 AM
To: oracle-l@xxxxxxxxxxxxx
Cc: Uzzell, Stephan
Subject: V$SGASTAT

Hi all,

We recently had an issue with an undersized shared pool. We've increase the 
size of the shared pool and think this should be resolved. Our customer, 
however, is freaking out and wants to monitor this.

I've been looking at v$sgastat hoping this would provide the information, but I 
don't quite understand how the view works. Testing against 11.2.0.3.7 on 
OEL6x64.

Shared_pool_size is set at 256MB for each instance in this RAC. Yet when I try 
to sum up either the free memory value or the non-free values, I get results 
far larger than that:

SQL> select
  2          type
  3        , round( sum( bytes /1024 /1024 ) ) MB
  4  from
  5          (
  6          select
  7                  case when name = 'free memory' then 'FREE' else 'USED' end 
type
  8                , bytes
  9          from
10                  v$sgastat
11          where
12                  pool = 'shared pool'
13          )
14  group by
15          type
16  /

TYPE         MB
---- ----------
USED       3760
FREE       1744

Am I completely misunderstanding how this is supposed to work? Is there some 
way to monitor shared pool usage?

Stephan Uzzell

Other related posts: