The only surprise for me is that there wasn't more gain using
bind_columns()/fetch().  The documentation does mention it as faster than
the other methods and I never use anything else.  The aliasing of fetch()
from fetchrow_arrayref() isn't important, but using bind_col() or
bind_columns() is.

Maybe there is some way to emphasize it more strongly in the documentation.
A lot of people seen enamored with fetchrow_array() and fetchrow_hashref()
and may not realize the performance penalty they are incurring.

>From DBI.pm:

=item B<fetchrow_arrayref>

  $ary_ref = $sth->fetchrow_arrayref;
  $ary_ref = $sth->fetch;    # alias

Fetches the next row of data and returns a reference to an array
holding the field values.  Null field values are returned as undef.
This is the fastest way to fetch data, particularly if used with
$sth->bind_columns.

--
Mac :})
** I normally forward private database questions to the DBI mail lists. **
Give a hobbit a fish and he'll eat fish for a day.
Give a hobbit a ring and he'll eat fish for an age.
----- Original Message -----
From: "H.Merijn Brand" <[EMAIL PROTECTED]>
To: "Tim Bunce" <[EMAIL PROTECTED]>
Cc: "DBI developers" <[EMAIL PROTECTED]>
Sent: Wednesday, March 21, 2001 8:18 AM
Subject: DBI 1.14 doc patches and performance tests


> . . .
> Every percentage is the performance gain towards the previous (slower)
fetch
> method. What surprised my audience was the fact that using bind_columns
with
> fetch was faster along the line than fetch without bind_columns (everyone
using
> DBI in the audience seemed to use fetchrow_arrayref all the time, and they
were
> not aware of the fact that fetch was an alias. Noone was using
bind_columns).
> . . .

Reply via email to