in reply to Perl DBI Performance

I'm not that used to postgress and don't fully understand the where clause in the first update:
UPDATE yeast1 set $tables[$_] = temp/$tables[$_-1] where yeast1.orf = +temp.orf;
Where does temp.orf come from. From a temoprary table?

If it does, you should have an index on that table on the column orf.

And you should have an index on yeast1(orf) anyway.

Try to benchmark the sql, AFAIK postgres has some tool show what's going on, when a query runs (explain or such).