Gerardo Herzig escribió:

> Para los bulk inserts suele ayudar:
> * borrar los indices (y recrearlos luego de la insercion)
> * set maintenance_work_mem TO 'una buena porcion de la RAM' (para acelerar la 
> creacion de los indices)
> * set syncronous_commit to 'OFF' (si puedes tomar el riesgo de perder alguna 
> transaccion)
> * deshabilitar (temporalmente) autovacuum para la tabla que recibe esos datos

BEGIN;
DROP INDEX ...
TRUNCATE TABLE ...              -- borra todos los datos existentes
COPY (FROZEN) ...               -- carga los datos nuevos
CREATE INDEX ...
COMMIT

El TRUNCATE sirve para que el COPY no necesite hacer wal-logging de cada
inserción; el FROZEN de copy (es una opción muy nueva) permite que las
tuplas se inserten "frozen" y no requieran un freeze posterior (que
causaría más escrituras).

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a