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
[EMAIL PROTECTED] Tel: +44 1223 334506, Fax: +44 1223 334679