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 -> ORA-01037: maximum cursor memory exceeded

ORA-01037: maximum cursor memory exceeded

From: Scott Patterson <scott.patterson_at_trilogy.com>
Date: Fri, 25 Sep 1998 09:18:47 -0500
Message-ID: <360ba65b.0@feed1.realtime.net>


I have an interesting one. I have a production box that gives the error "ORA-01037: maximum cursor memory exceeded". If you look that up, the solution is to simplify the query. Now for the interesting part. The two development boxes have 1/10 the amount memory allocated to oracle as the production machine. Basically all the sizing parameters on the production box are 10 times that of the dev boxes. Neither of the dev machines have a problem with the query. We have even loaded a complete dump of the production database on the two dev boxes.

If you run an explain plan on the production machine and the NT dev machine you get the same very large query plan. On the dev unix box the plan is a simple table scan.

Dev works every time. Prod errors every time.

Oracle 7.3
Prod DEC Unix
Dev1 DEC Unix
DEV2 Intel based NT
All machines are using rule based optimization (and would prefer to remain that way).
1.5 million rows in tab1

The query is appended to this message.

Anyone run into this before? Ideas?

Scott

SELECT tab1.id, tab1.name, tab1.org, tab1.pricing_id, tab1.amount, TO_CHAR(tab1.start_date, 'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(tab1.end_date, 'YYYY-MM-DD HH24:MI:SS') FROM tab1
WHERE tab1.name
IN ('1','2',..... About 50 literals )
AND tab1.org
in ('A','B'...About 10 literals)
AND tab1.start_date <= TO_DATE('06/11/1998 00:00:00','MM/DD/YYYY HH24:MI:SS',
'NLS_DATE_LANGUAGE=American') AND tab1.end_date >= TO_DATE('06/11/1998 00:00:00','MM/DD/YYYY HH24:MI:SS','NLS_DATE_LANGUAGE=American') ORDER BY tab1.org ASC Received on Fri Sep 25 1998 - 09:18:47 CDT

Original text of this message

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