Hello,

"fetchall_arrayref" is just as slow for REF CURSORs because internally, OCI
still does a DB roundtrip for each row.

Running a test will illustrate the issue. Here is a result of a test run:
++++++++++++++++++++++++++++++++++++++++++++++++++
Fetched 2500 rows (select): [0.06174] secs.
Fetched 2500 rows (ref cursor): [5.40367] secs.
Fetched 2500 rows (ref cursor array-fetch): [0.631323] secs.
++++++++++++++++++++++++++++++++++++++++++++++++++

Biswa





Alexander V Alekseev
Fri, 14 Sep 2007 12:42:39 -0700

                Hello!

On Fri, 14 Sep 2007, Biswadeep Chowdhury wrote:

    I am listing the patch (diff file).
    The REF CURSOR array-fetch can be turned on using something like
    "$dbh->{RefCursorCacheSize}=16;".
    Array fetch remains off by default (single row fetch) so that it will
not
    affect users who dont care about it.
    I have added tests to the end of "50cursor.t" that you may execute to
view
    performance improvements.
    I hope you will consider it for the next version.

        Shouldn't it be implemented as fetchall_arrayref( $slice,
$max_rows ) ? DBD::Oracle lacks it.

        Bye. Alex.

Reply via email to