----- Mensaje original -----
> De: "Fernando Rodiño" <frodi...@gmail.com>
> Para: "Ayuda" <pgsql-es-ayuda@postgresql.org>
> Enviados: Jueves, 1 de Octubre 2015 19:45:08
> Asunto: [pgsql-es-ayuda] insert eficiente
> 
> 
> Buenas tardes a todos
> 
> 
> 
> Acudo a su amable ayuda para lo siguiente:
> 
> 
> Tenemos una implementación de Postgres 9.3 y estamos en un proceso
> con Pentaho Data Integration donde se hace un mapeo de unos archivos
> planos a una tabla, se realiza una adecuación de estos datos y se
> hace un insert masivo a una tabla destino X, hasta ahí todo
> funciona, el problema que tenemos es que es mucha información y la
> tabla destino tiene varios indexes que hacen más demorada la
> operación, en Postgres 8.4 uno podía inactivar los indexes mientras
> ejecutaba la operación, pero en Postgres 9.3 no funciona esa
> estrategia o almenos como se hacia en Postgres 8.4 no funciona:
> update pg_index set indisvalid = false where indexrelid =
> 'i_nombre_index'::regclass; Alguien conoce una estrategia para
> realizar este tipo de operaciones que funcione en postgres 9.3
> 
> 
> Muchas gracias por su ayuda.
> 

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

HTH
Gerardo

-
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