Use DBI::Profile to see where the time is being spent.

Tim.

On Tue, Jul 25, 2006 at 06:35:59PM +0100, Martin J. Evans wrote:
> I know this is one of those how long is a piece of string questions but
> I cannot see any difference using prepare_cached with a remote mysql or
> oracle database. I have code which does inserts/updates/selects - around
> 20 - 30 different pieces of SQL and most of them are run between a 100
> and 1000 times per file I process. When I process around 10 files it
> takes around 4 minutes and this drops about 5s when using prepare_cached
> (but I thought this was too small so was within the bounds of variance
> running the same script multiple times anyway).
> 
> Most of the uses are like this:
> 
> my $sql = q/select column from table where column2 = ?/;
> my $val = selectrow_array($sql, undef, $a_value);
> 
> where the select returns one row. I changed this to:
> 
> $s = $h->prepare_cached($sql);
> $s->execute($a_value);
> $val = $s->fetchrow_array;
> $s->finish;
> 
> There is was specific change to prepare_cached which actually doubles
> the time when run to mysql compared with using prepare:
> 
> select LAST_INSERT_ID();
> 
> Am I doing something wrong or are my expectations wrong. I had thought
> using prepare_cached would shave a lot more than 5s in 240s off.
> 
> Has anyone got a concrete example of where prepare_cached is
> significantly faster? or I am flogging a dead horse?
> 
> Martin
> -- 
> Martin J. Evans
> Easysoft Limited
> http://www.easysoft.com
> 

Reply via email to