When I execute a query on a new connection, the performance is many
times slower than if the query is repeated. In other words, if I start
psql, execute the query, then repeat it immediately, the second time it
takes only about 20% as long to execute. Now here's the confusing
part, if I exit psql then start it up again, the same thing will occur
on the new connection as well, the first execution takes 5x as long
again. I don't understand this, it would make sense to me that the
second execution being faster is due to disk caching on the server, but
then why is it slower again on every new connection? Disk caching
should benefit all current and new connections until the cache is
flushed, which on this server shouldn't happen for a long time, the
load is light and it has lots of RAM. Is Postgres doing some kind of
caching itself that lasts only for the life of one backend process? If
so, is there any way to make this caching persistent across backends?
Server particulars:
Postgres 7.2.1, Mac OS X Server 10.1.5, dual 1GHz CPUs, 1.5GB memory
Thanks!
Bob Smith
Hammett & Edison, Inc.
bsmith@h-e.com