Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^2: For a better efficiency and speed question!

by Anonymous Monk
on Oct 04, 2011 at 15:46 UTC ( #929582=note: print w/replies, xml ) Need Help??

in reply to Re: For a better efficiency and speed question!
in thread For a better efficiency and speed question!

"...WHERE mame" just typed it wrong, but it is ...WHERE name <> '', name is not equal do empty.

Replies are listed 'Best First'.
Re^3: For a better efficiency and speed question!
by pvaldes (Chaplain) on Oct 04, 2011 at 15:49 UTC

    ... two times, your sql is malformed

    =code my $sql = $dbh->exec_select("SELECT acc,name,date FROM mytable WHERE m +ame<>''

    and same problem after the my $control_num line

      AND ((date + 125 DAYS) < CURRENT_DATE)

      The same as this but more easy to calculate

      AND ((date + 1 YEAR) < (CURRENT_DATE + 240 DAYS) )
      What is wrong with this code?
      =code my $sql = $dbh->exec_select(" SELECT acc, name,date FROM mytable WHERE name <> '' AND ((date + 1 YEAR) >= (CURRENT_DATE)) AND ((date + 1 YEAR) < (CURRENT_DATE + 240 DAYS)) AND controlnum IN ('12345','8877788','23334455','223445988','222339000 +','2222333','223475699','22339668','2223999','009999','11220000','777 +66','88776' ,'9988888','11223756','22388577','9998888','998888','77665555','999988 +8','88877777','666555555','88777766666','112223333','9998877','998887 +7' ,'888777666666','00988777','887777654') and date between '2010-11-11' and '2011-11-11' order by date desc"); =cut
      If you show where you see the error it would help! Thanks

        Nothing wrong really, but you ask for efficiency and speed, and anything counts...

        You use: AND ((date + 1 YEAR) < (CURRENT_DATE + 240 DAYS))

        Let's see the algoritm. For each record you sum 365 to date and remember this number, then you sum 240 to current date and save this to a new var somewhere in the memory, then you compare both numbers

        I'm suggesting this instead: AND ((date + 125 DAYS) < CURRENT_DATE)

        Now for each record you sum 125 to date and compare this with current date. You are creating a new var, not two.

        Thus you need less memory and is also a little less demanding operation for the CPU. Nothing to care for when you have a few sums but in this context could suppose one advantage

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://929582]
[Discipulus]: ah! just with my old system perl (5.8.8) was needed
[Corion]: Has anybody toyed around with Mastodon? There is a Perl module for it, but I'm not sure that it's a yak worth chasing
[Corion]: On the upside, maybe running that for my family would be interesting, or at least for myself
[Corion]: I'm not fond of using a server hosted by other people, even if they claim to be GNU ;)
[Discipulus]: gee a social network with the family.. is this a dread? ;=)

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2017-05-26 07:37 GMT
Find Nodes?
    Voting Booth?