A loop over 100 million rows with multiple object inflation for each row is
going to suck a serious amount of CPU time.

[Even more horribly, if you are using some databases - for example DBD::Pg -
then you are almost certainly not using a cursor or chunk at a time approach
but instead sucking the whole query output into local memory and then 
(if you are lucky) rolling over it a few objects at a time, or if you
are unlucky building all those objects in memory at once!]

You may be able to approach the speed of pure DBI if you use 
DBIx::Class::ResultClass::HashRefInflator


>> Also what version of perl and on what platform?
> 
> perl v5.8.8 built for i386-linux-thread-multi on Centos Linux 5.5.

I use Centos myself (although I don't have 5.5).  The perl is sluggish
with object handling on versions up to 5.4, although the show stopper bug
has now gone.

In general though you don't want to be iterating over that number of
rows manually if you can avoid it...

        Nigel.


--
[ Nigel Metheringham             nigel.methering...@intechnology.com ]
[ - Comments in this message are my own and not ITO opinion/policy - ]





_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk

Reply via email to