> 4) Much of my reading of the PG docs and list archives seems to suggest that much of performance tuning is done at the query level - you have to know how to ask for information in an efficient way. Performance does not exist in a vacuum (ho ho, PostgreSQL joke). The person writing the queries has to understand what is actually happening inside of the database. When I ported my app from MS SQL over to PostgreSQL several years ago, there were many queries that were previously zippy that ran like turds on PostgreSQL, and vice-versa! As my dataset has gotten larger I have had to throw more metal at the problem, but I have also had to rethink my table and query design. Just because your data set grows linearly does NOT mean that the performance of your query is guaranteed to grow linearly! A sloppy query that runs OK with 3000 rows in your table may choke horribly when you hit 50000. John