Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Oracle internal memory management

Oracle internal memory management

From: Chris Hafey <chafey_at_ecst.csuchico.edu>
Date: 1996/10/28
Message-ID: <553elt$qcv@charnel.ecst.csuchico.edu>#1/1

Hello,
  We have been getting 4031 (unable to allocate shared memory) errors. The only help for this error is "increase shared memory". We have tried this, but it doesn't solve the problem.

  Our application is written in C using OCI libraries on a HPUX machine. The application opens a single connection to the database and opens a single cursor. The cursor is reused (never closed) for every SQL command. The application is loading data into the database on a continuous basis. The application generates unique sql for almost every SQL command.

  1. Is there any problem with reusing the same cursor for the duration of the application?
  2. Is there any problem with constantly generating unique SQL?
  3. Is there any problem putting the column values in the SQL instead of using bind variables? (SET FOO='bar' vs SET FOO=:foovar)
  4. Does Oracle really keep each unique SQL statement cached in memory? Why?

We suspect that Oracle is having problems because we have too much dynamic SQL. Before we spend the time making sure every SQL statement uses bind variables, I wanted to verify that this is the problem. We thought that opening and closing the cursor might help, but again I wanted to see what other people had to say.

Thanks!

Chris Hafey

-- 
chafey@ecst.csuchico.edu    	http://www.ecst.csuchico.edu/~chafey
Received on Mon Oct 28 1996 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US