in reply to Much slower DBI on RHEL6
Hi,
not an answer to your main question. But a kind of annotation looking at your code:
IMHO you're not using the possibility of prepared statements and bind variables. Look at this code:
my $dbh = $me->{DBHANDLE}; my %labels; # Get all the different ids my $sql = 'SELECT DISTINCT id FROM list_index '; my $sth = $dbh->prepare($sql); $sth->execute; my $sql2 = 'select id, description from list_index where id = ? order + by rpt_key desc limit 1'; my $sth2 = $dbh->prepare($sql2); while(my $hashref = $sth->fetchrow_hashref) { $sth2->execute($hashref->{id}); while(my $hashref2 = $sth2->fetchrow_hashref) { $labels{$hashref2->{id}} = $hashref2->{id} . ' - ' . $hashref +2->{description}; } } $sth2->finish; $sth->finish; return \%labels;
With this code you gain two things: a) You don't prepare a new sql statement per loop iteration. b) You use bind variables which is almost always better than inserting values like you did it (sql injection). c) It should be measurable faster.
Best regards
McA
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Much slower DBI on RHEL6
by Tux (Canon) on Feb 06, 2014 at 12:44 UTC | |
by McA (Priest) on Feb 06, 2014 at 13:02 UTC | |
by Tux (Canon) on Feb 06, 2014 at 13:13 UTC | |
by McA (Priest) on Feb 06, 2014 at 13:37 UTC | |
by MPM (Novice) on Feb 06, 2014 at 21:15 UTC | |
by Anonymous Monk on Feb 07, 2014 at 07:14 UTC |