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