On 19/01/07 18:07, Joel Noble wrote: > Hello, all! > > I'm having slow performance reading from a cursor that is returned > from a stored procedure. Network tracing and strace confirms that > a round-trip is being done to the Oracle DB to fetch each row, with no pre-caching. Using DBI-1.52, DBD-Oracle-1.18 on Linux with Perl 5.8.5 and the ora10202_32 client. > > If I'm reading the DBD::Oracle docs correctly, a cursor returned > from a PL/SQL stored proc will be considered a "nested cursor" > (even though there are no cursors nested inside the rows returned). > So, I've set the ora_max_nested_cursors and the RowCacheSize > database handle attributes right after connecting. (I've also > tried them in the connect.) This does not seem to change the behavior. > > Here's some sample code I've culled out of my program. Any ideas welcome! Two points. 1. ora_max_nested_cursors is not relevant. This value is used only in the case where a result set has columns of type REF CURSOR, resulting in nested fetches. If you don't have a 'CURSOR( ... )' expression in the select list of a 'SELECT' statement, you don't have nested cursors. 2. Does you result set have LONG or LONG RAW columns? Caching is disabled if you have these. -- Charles Jardine - Computing Service, University of Cambridge cj10@cam.ac.uk Tel: +44 1223 334506, Fax: +44 1223 334679Thread Previous | Thread Next