Running DBI 1.58 and DBD::Oracle 1.19 with Oracle 10g (10.2) on Fedora 7 64 bit OS:

Copying a table from one tablespace to another tablespace (two $dbh handles). The table has 56 fields. I've simplified the process to:

fetch row from first dbh
execute row to second dbh
commit every 100 rows

The table contains 1.9 million rows -- I copied 20,000 here and used DBI::Profile to get these results:

DBI::Profile: 130.809944s 93.63% (40001 calls) test_tie.pl @ 2007-09-14 15:18:40
'DESTROY' =>
   'DBD::Oracle::st::DESTROY' =>
       0.000075s
'err' =>
   'DBD::Oracle::st::err' =>
0.026046s / 19999 = 0.000001s avg (first 0.000001s, min 0.000000s, max 0.000021s)
   'DBD::_::common::err' =>
       0.000010s
'execute' =>
   'DBD::Oracle::st::execute' =>
130.783813s / 20000 = 0.006539s avg (first 0.004013s, min 0.000390s, max 29.996666s)

Basically, most executes finish in milliseconds, but randomly (different every run), the execute holds for 30 seconds, almost dead on. I can't figure out why, but the the delay when it halts (doesn't map up with the commits either) looks like some kind of timer.

I haven't noticed this problem on tables with fewer columns.

Any ideas?

Andy

Reply via email to