Alvaro Herrera dijo [Thu, Jan 08, 2009 at 06:40:03PM -0300]: > Miguel Angel escribió: > > Dentro del servidor del trabajo he puesto un comando de vacunación y > > reindexación de la base debido a que creí que esto haría más rápida la > > base, debido a problemas de ralentización que hay en nuestra aplicación. > > Normalmente no traducimos "vacuum".
Y si lo hiciéramos (porque a veces ayuda para entender qué es lo que este proceso significa), no sería por "vacunación". En inglés, "vacuum" significa vacío, y de ahí deriva el nombre de las aspiradoras, "vacuum cleaner" (que son máquinas hechas para limpiar a través de un diferencial de presión en el aire, creando un vacío). El proceso de "aspirar" tus bases de datos va, tabla por tabla, recogiendo figurativamente el polvo y la basura que pueda encontrar. Por poner un ejemplo, cuando eliminas un registro, por razones de rendimiento, PostgreSQL no lo borra inmediatamente del disco, sino que lo marca como "pendiente". Aspirar una tabla recoge esas migajitas de información pendiente. Esto obliga, claro, a que se regeneren los índices, pues la ubicación física de cada registro cambia en dicho proceso. Esto no sólo te lleva a ahorrar espacio, sino que mejora el rendimiento (pues reduce la probabilidad de que el motor se tope con un registro que aparentemente cubre las condiciones que le solicitaron, para encontrarse con que está marcado como inválido). Y además, el motor recolecta estadísticas acerca de los registros para ayudarse a optimizar los futuros planes de búsqueda. Claro está, para algunas de estas operaciones es importante contar con acceso exclusivo... de modo que hay veces que una pasada de vacuum es diferida, si el motor se da cuenta que le pegaría al rendimiento de las operaciones actuales. Saludos, -- Gunnar Wolf - gw...@gwolf.org - (+52-55)5623-0154 / 1451-2244 PGP key 1024D/8BB527AF 2001-10-23 Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF -- TIP 5: �Has le�do nuestro extenso FAQ? http://www.postgresql.org/docs/faqs.FAQ.html