ORA-04031: unable to allocate 1036 bytes of shared memory ("large pool","unknown obje

I can only quote the error messages guide:
ORA-04031 unable to allocate string bytes of shared memory ("string","string","string","string")

Cause: More shared memory is needed than was allocated in the shared pool.

Action: If the shared pool is out of memory, either use the DBMS_SHARED_POOL package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the initialization parameters SHARED_POOL_RESERVED_SIZE and SHARED_POOL_SIZE. If the large pool is out of memory, increase the initialization parameter LARGE_POOL_SIZE.

------------------
Marco Kalter
Allround Automations
 
Originally posted by skanat:
Does anyone know about this ERROR???
I don'r know where is it from!!

thanks people!
nat

flush the damn thing .
or ping - as a better aproach.
the best approach - takea look on whatis going on inside Shared Pool.
 
It's been a long time since I've received this error, so maybe I'm remembering wrong.

However, it seems like I've gotten it in the past when I have a SQL statement running a long time. Maybe check to make sure all of your joins are there (no cartesian joins), and check that it doesn't need to sort a whole bunch of rows. You might try re-writing the offending query and tuning it some more.

When I can't figure out a problem with a query, it helps to start with one table, run it and make sure it works with one table, then add a table, run it etc until the problem shows up. You know what table has the problem that way.

Some other things to think about - If it's a package, you might trace it and see if it's stuck on a SQL statement. If it's a really large package, you might try and break it up into smaller packages.

Also - ask your DBA's for help. It seems like the DBA's have flushed the pool at other places that I've worked every so often.

Good luck,

Mike
 
I was thinking about this. I think that I have gotten this error from a SQL before, but it would make more sense to run out of temp space if a SQL had a large result set from a cartesian join or something.

I would get a DBA involved though. It seems like they know more about the shared pool.
 
Back
Top