I have a user running a script that is giving him the following error.
RETCODE= -1; SQL STATE= HY000; DB ERROR= 4031; TEXT= [Oracle][ODBC][Ora]ORA-04031: unable to allocate 2196 bytes of shared memory ("shared pool","ICCYCLECNTPROFCE50ORADRIVER","KGLS heap","KGLS MEM BLOCK") ; CLASS= fdSite; METHOD=executeStmt; FILE=D:prismotf1dbaccesssrcdbstmt.cpp; LINE=3843; HENV=00F014E8; HDBC=00F01A18; HSTMT=00F01EF8; insert into ce50oradriver.fdSite values...
My first assumption is to bump up the shared pool in the SGA. However, I'm suspicious that the real problem may be the SQL he is running. Any suggestions on getting a handle on this?
There are two popular reasons why the database is throwing the ORA-4031 error. The first is that the Shared Pool simply does not have enough space and you need to increase the SHARED_POOL_SIZE parameter. The second reason is that Oracle 8i had a bug where the instance did not manage the Shared Pool correctly. Even throwing more memory at the Shared Pool did not solve the problem This bug was fixed in Oracle 18.104.22.168 and Oracle 9.2.0. You didn't specify your version, but you may be in for an upgrade or a patchset to fix the error.
Dig Deeper on Oracle database design and architecture
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.