Re: Help with ORA-01000 Error

From: Mladen Gogala <gogala.mladen_at_gmail.com>
Date: Wed, 19 Jun 2013 03:38:59 +0000 (UTC)
Message-ID: <kpr94j$ph3$5_at_solani.org>



On Tue, 18 Jun 2013 09:25:28 -0700, joel garry wrote:

> Yes, John's reply incorrectly assumes it isn't the program, but is
> otherwise correct. Others would strongly disagree with him about the
> number of cursors (being too high), but whenever I see that I have to
> say mine are 5000. That's because my app purposefully keeps cursors
> open, and yet still handles them efficiently and properly, so they are
> around on demand, making certain queries much faster than expected. So
> really, it depends on the app. For most cases where you keep upping
> cursors to 5000, that would indicate some dumb programming error (or
> some configurations of some access software as to default cursor
> handling), but if the app is done right, the limit is asymptotic, not
> ever increasing. How this actually works has changed a lot over Oracle
> versions, so it really isn't unreasonable to expect a lower cursors than
> John says, except when you have software that requires otherwise.

Basically, with the advent of large memories, when almost everybody has at least 4GB on the PC, cursors are cheap and closing them obsessively is no longer required. In addition to that there are pieces of software, which turn me into a cursor, and are used to write large number of application. I am talking about Groovy on Grails, Spring MVC, Hibernate and Struts which all tend to open cursors in profusion. They also generate SQL statements that turn me into [*EXPLETIVE DELETED*] cursor. The old wisdom that if an application uses more than 500 open cursors, there is something wrong with it, no longer applies.
The new wisdom says that applications suck, are regularly written by cheap incompetent "engineers" who have no idea about the software engineering and the sound relational design, but we have to support the applications, no matter what. Software engineer is no longer responsible for the performance of its creations, now there is a DBA who will work his or her magic. DBA is responsible for the application performance but has no say in the application design.

But thought's the slave of life, and life time's fool; And time, that takes survey of all the world, Must have a stop.

(Henry IV)

-- 
Mladen Gogala
The Oracle Whisperer
http://mgogala.byethost5.com
Received on Wed Jun 19 2013 - 05:38:59 CEST

Original text of this message