On 08/06/10 15:53, Nigel Metheringham wrote:
On 8 Jun 2010, at 15:17, Chris Cole wrote:
Which when run in an SQL client takes<1 sec to run and via 'normal' DBI the
full code still runs in ~1.5 min. So, there's nothing wrong with the SQL. There
seems to be something up with DBIC. This is DBIC v0.08122 BTW.
How many rows are there in the database?
~111m rows.
Also what version of perl and on what platform?
perl v5.8.8 built for i386-linux-thread-multi on Centos Linux 5.5.
Did you install DBIC yourself - if not grab a copy and make sure you
run the test
t/zzzzzzz_perl_perf_bug.t
which checks for installations which have strangely slow object
creation characteristics....
Yes, I installed it via CPAN and the test completed fine, allegedly:
t/zzzzzzz_perl_perf_bug.t ........................ ok
t/zzzzzzz_sqlite_deadlock.t ...................... ok
All tests successful.
Also try replacing this:-
while (my $hit = $rs->next()) {
my $freq = $hit->get_column('mp_freq');
$nHits += $freq;
}
with
$nHits = $rs->get_column('mp_freq')->sum();
[Look at http://search.cpan.org/perldoc?DBIx::Class::ResultSetColumn
for an idea as to whats happening here - the get_column is a resultset
method not a row method]
Thanks, but this isn't the final code. It will be doing more with the
other columns.
Cheers,
Chris
_______________________________________________
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/[email protected]