Asegúrese de aspirar periódicamente. El sistema de autovacío actual hace un buen trabajo en la mayoría de los casos, pero aún así puede ser útil ejecutar una aspiración manual completa periódicamente (en nuestro caso, esto ocurre aproximadamente una vez al año).
Los índices solo se usan con fiabilidad si hay estadísticas disponibles para la tabla. Asegúrese de ejecutar un análisis de vacío después de cualquier cambio importante en una tabla (toneladas de inserciones/eliminaciones) para garantizar que los índices se seleccionen correctamente.
La configuración predeterminada de Postgres está optimizada para un sistema con recursos relativamente modestos y discos lentos. Si su sistema tiene discos más rápidos (posiblemente), una CPU más rápida (probablemente) o mucha más RAM (casi con certeza), entonces asegúrese de ajustar los diversos parámetros en función de eso. Lo principal es aumentar el tamaño del búfer, pero si tiene discos extremadamente rápidos (especialmente SSD), sería una buena idea reducir también las estimaciones de costos para los tiempos de búsqueda.
También he tenido algunas experiencias con combinaciones ligeramente lentas en consultas bastante complejas, pero estas son mucho más difíciles de generalizar. En general, ayuda a ser más explícito con la consulta de lo que puede requerirse en una base de datos con un optimizador de consultas más sofisticado (por ejemplo, Oracle o DB2).
Sí me he dado cuenta de vacío automático realmente no no funciona demasiado bien con los sistemas que tienen grandes cargas de datos diariamente. Al menos "analizamos" a diario. –