posted 22 years ago
How did you know that your session had 1040 cursors open? Did you check the v$open_cursor view? This view show you all cursors that are compiled and remains in SGA. V$OPEN_CURSOR contains every sessions' cursors. It includes oracle internal cursors too. Join v$session , v$sesstat and v$statname to see how many cursors you have been used. The initialization parameter OPEN_CURSORS determines the maximum number of
cursors per user process.
It may be better to identify the problem rather than just blindly increasing OPEN_CURSORS further.The highest value you can set for open cursors parameter is operating system dependant. The overhead is about 250 bytes per open cursor within the shared pool.
If you explicitly open a cursor,you must explicitly close it. Make sure you close every resultset when you're done with it, and every statement (try to put in your finally blocks).
Hope this helps
Regards
Beksy
[ August 06, 2002: Message edited by: Beksy Kurian ]