Velocidad de Truncamiento Postgresql

Estamos usandoPostgresql 9.1.4 como nuestro servidor db. He estado tratando de acelerar mi conjunto de pruebas, así que empecé a perfilar un poco la base de datos para ver exactamente qué está pasando. Estamos usandodatabase_cleaner Truncar tablas al final de las pruebas. SÍ Sé que las transacciones son más rápidas, no puedo usarlas en ciertas circunstancias, así que no me preocupa eso.

Lo que me preocupa, es por qué TRUNCATION lleva tanto tiempo (más tiempo que usando ELIMINAR) y por qué me lleva MÁS AÚN en mi servidor CI.

En este momento, localmente (en un Macbook Air) un conjunto completo de pruebas toma 28 minutos. Siguiendo los registros, cada vez que truncamos tablas ... es decir:

TRUNCATE TABLE table1, table2  -- ... etc

se tarda más de 1 segundo para realizar el truncamiento. Seguir los registros en nuestro servidor CI (Ubuntu 10.04 LTS), demora 8 segundos en truncar las tablas y una compilación demora 84 minutos.

Cuando cambié a la:deletion estrategia, mi compilación local tomó 20 minutos y el servidor de CI se redujo a 44 minutos. Esto es unsignificativo la diferencia y estoy realmente impresionado de por qué esto podría ser. Hesintonizado la DB en el servidor CI, tiene un ram del sistema de 16 gb, 4gb shared_buffers ... y un SSD. Todas las cosas buenas. Como es posible:

a. que es mucho más lento que mi Macbook Air con 2 GB de RAM
segundo. que la TRUNCIÓN es mucho más lenta que BORRAR cuando eldocumentos postgresql Estado explícitamente que debería ser mucho más rápido.

¿Alguna idea?

Respuestas a la pregunta(4)

Su respuesta a la pregunta