Hello all,

I am not sure if i'm inside the correct mailing list, but it should be
simple for you guys. Recently i started a simple perl program to catch
all syslog from my netscreen firewall, and put them into a database, so
later can do some analysing on it (sort of AWStats). the database itself
is pretty big, with 600k entry (for 3 weeks of the running firewall)
worth 80 megs in mysql. My question is, during the analysing my perl
script giving very slow processing. I know the query to mysql itself is
pretty quick, less than 2 seconds to return about 40k to 60k result to
perl to be analysed

Here it goes:
<snipped>
        $query = "SELECT src, rcvd FROM no_name WHERE start_date >=
'$fromdate' AND start_date <= '$todate';";
        $sth = $dbh->prepare($query);
        $sth -> execute() || &errorhere("SQL Error: $DBI::errstr");
        print "$query<br>";

        my %src = ();
        my ($totalsent, $totalrcvd, $srcchecked);

        while(@row = $sth->fetchrow_array){
                $srcchecked = 0;
                while($source, $total = each (%src)){
                        if ($source eq "$row[0]"){
                                $srcchecked = 1;
                                $src{$source} = $src{$source} + $row[1];
                        }
                }
                if ($srcchecked != 1){
                        print "$row[0]<br>";
                        $src{$row[0]} = $row[1];
                }
                $totalrcvd = $totalsent + $row[1];
                #$totalrcvd = $totalrcvd + $row[2];
        }
</snipped>

The while loop to do analysing on the data take more than 15 minutes,
and that only to a query for 1 day long records($fromdate-$todate) 
So, if I want perl to give me faster result, what's the solution? Did I
make fundamentally wrong approach?


Thanks in advance for any response



Toddy Prawiraharjo



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to