----- 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