Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Help with Shared Pool Problem

Re: Help with Shared Pool Problem

From: Tim Gorman <>
Date: Thu, 14 Oct 2004 22:57:49 -0600
Message-ID: <>

Sounds like cursors are not being closed by the application program. They are being opened and used once, iteratively within a loop. Each opened cursor is still "active" in the Shared Pool and the space it consumed will not be recycled until it has been closed (inactivating it).

Just curious, have you set OPEN_CURSORS to a really high value? It's not always a good thing to do. This is proof.

This is a "leak", one of the oldest programming mistakes in the world. Allocate something, neglect to free it. Then, repeat in a loop a bunch of times.

Please ask the developer to consider matching each "open cursor" call with a corresponding "close cursor" call.

Hope this helps...

on 10/14/04 8:10 AM, Bobak, Mark at wrote:

> Ron,
> I have to disagree w/ Ganesh. A SQL, once execution completes, should =
> be=20
> eligible for flushing, unless it was kept. You don't have something
> running that would keep existing cursors into the library cache, do you?
> I would tend to doubt that you do, but, if you did, that would certainly
> cause problems.
> I think you want to go here:
> and review some of the scripts, expecially shared_pool_lru_stats.sql,
> shared_pool_free_lists.sql, and shared_pool_summary.sql
> Steve covers what these scripts do, but, briefly, the summary shows
> you what kinds of objects are taking space in the shared pool.
> The free_lists script shows you how fragmented the free lists are,
> (which can lead to ORA-4031) and finally, the lru_stats script
> can give you some idea of whether your shared pool is undersized.
> Check the website and Steve's book for more details as to how it
> all works and how to interpret the outputs of these scripts,=20
> especially the lru_stats script.
> Hope that helps,
> -Mark
> -----Original Message-----
> From:
> []On Behalf Of Smith, Ron L.
> Sent: Thursday, October 14, 2004 9:48 AM
> To: Ganesh Raja
> Cc:;
> Subject: RE: Help with Shared Pool Problem
> So you are saying there is no LRU processing taking place? Nothing is
> ever aged out or overwritten?
> Ron
> -----Original Message-----
> From: Ganesh Raja []=3D20
> Sent: Thursday, October 14, 2004 8:33 AM
> To: Smith, Ron L.
> Cc:;
> Subject: Re: Help with Shared Pool Problem
> There is No Aging happening .. Let us assume that u are Calling a Select
> Stmt Again and Again with different Parameters to it and also same
> parameters .. As Far as Oracle is concerened your stmts have not aged .
> They are new since it has now only been created or it has been used in
> the past few mins.
> So oracle tries to create new space for the stmt that u are trying to
> parse now and it fails there ...

Received on Thu Oct 14 2004 - 23:54:40 CDT

Original text of this message