in reply to Re: Re: Code useless, forget it... this is more usefull (o;
in thread prepare_cached for DBI::Oracle

A couple more ideas (sparked by the 80,000) :
  1. Try binding the return values. e.g.
    my $imei; $rc = $sth_imei->bind_col(0,\$imei); $sth_imei->execute(); $sth_imei->fetch(); print "IMEI : $imei\n";
  2. If you don't want to do that, at least use ->fetchrow_arrayref(). Otherwise, each execute call has to create a new list for you. The _arrayref gives you a ref. to a static array, so less copying.
  3. bind_param should take a colum number shouldn't it, not a name, e.g. $sth_imei->bind_param(0,$rec[1])
Either of the first 2 should save time, given 80,000 iterations.
Finally, note that execute() can return '0E0' meaning 0 but true, meaning no rows (and different to undef for errors). May be worth checking for that explicitly.
I think I'm out of ideas now...
--
Brovnik