En realidad, hay algunas reglas simples, que pueden ayudarle en la mayoría de los casos el rendimiento suficiente:
Los índices son la primera parte. Las claves primarias se indexan automáticamente. Recomiendo poner índices en todas las claves foráneas. Además coloque índices en todas las columnas que se consultan con frecuencia, si hay consultas muy utilizadas en una tabla donde se consulta más de una columna, coloque un índice en esas columnas juntas.
Configuraciones de memoria en su instalación de postgresql. Establezca los siguientes parámetros superiores:
.
shared_buffers, work_mem, maintenance_work_mem, temp_buffers
Si se trata de una máquina de base de datos dedicado usted puede configurar fácilmente los 3 primeros de éstos a la mitad de la RAM (sólo estar cuidado en Linux con tampones compartidos, puede ser que tenga que ajustar el parámetro shmmax), en cualquier otro casos depende de la cantidad de ram que le gustaría dar a postgresql.
http://www.postgresql.org/docs/8.3/interactive/runtime-config-resource.html
Es necesario configurar el archivo postgresql.conf. Y reinicie la base de datos. Consulte este enlace para obtener la configuración de configuración detallada: http://tekadempiere.blogspot.ae/2014/09/tuning-postgresql-for-better-performance.html – Sajeev