From: Powell, Mark <>
Date: Tue, 11 Mar 2014 17:43:30 +0000
Message-ID: <>

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: [] On Behalf Of Uzzell, Stephan Sent: Tuesday, March 11, 2014 9:46 AM
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 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 /

---- ----------

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

-- Received on Tue Mar 11 2014 - 18:43:30 CET

Original text of this message