| From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
|---|---|
| To: | Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar> |
| Cc: | Fernando Rodiño <frodinom(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
| Subject: | Re: insert eficiente |
| Date: | 2015-10-02 15:47:36 |
| Message-ID: | 20151002154736.GC2573@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
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(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Hellmuth Vargas | 2015-10-03 21:25:23 | Fwd: actualización de versión de replicas PostgreSQL Streaming Replication |
| Previous Message | Gerardo Herzig | 2015-10-02 15:33:02 | Re: insert eficiente |