Re: [MASSMAIL]Re: [pgsql-es-ayuda] insert eficiente

2015-10-05 Por tema Arcel Labrada Batista
ALTER TABLE  tutabla DISABLE TRIGGER ALL;

- Mensaje original -
De: "Alvaro Herrera" <alvhe...@2ndquadrant.com>
Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
CC: "Fernando Rodiño" <frodi...@gmail.com>, "Ayuda" 
<pgsql-es-ayuda@postgresql.org>
Enviados: Viernes, 2 de Octubre 2015 11:47:36
Asunto: [MASSMAIL]Re: [pgsql-es-ayuda] insert eficiente

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 Herrerahttp://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
17 de octubre: Final Cubana 2015 del Concurso de Programación ACM-ICPC.
http://coj.uci.cu/contest/contestview.xhtml?cid07

-
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


Re: [MASSMAIL]Re: [pgsql-es-ayuda] insert eficiente

2015-10-05 Por tema Arcel Labrada Batista
mala mia, disculpen, ya me di cuenta del error, INDICES NO TRIGGERS

- Mensaje original -
De: "Arcel Labrada Batista" <alabra...@uci.cu>
CC: "Gerardo Herzig" <gher...@fmed.uba.ar>, "Fernando Rodiño" 
<frodi...@gmail.com>, "Ayuda" <pgsql-es-ayuda@postgresql.org>
Enviados: Lunes, 5 de Octubre 2015 8:52:08
Asunto: Re: [MASSMAIL]Re: [pgsql-es-ayuda] insert eficiente

ALTER TABLE  tutabla DISABLE TRIGGER ALL;

- Mensaje original -
De: "Alvaro Herrera" <alvhe...@2ndquadrant.com>
Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
CC: "Fernando Rodiño" <frodi...@gmail.com>, "Ayuda" 
<pgsql-es-ayuda@postgresql.org>
Enviados: Viernes, 2 de Octubre 2015 11:47:36
Asunto: [MASSMAIL]Re: [pgsql-es-ayuda] insert eficiente

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 Herrerahttp://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
17 de octubre: Final Cubana 2015 del Concurso de Programación ACM-ICPC.
http://coj.uci.cu/contest/contestview.xhtml?cid07

-
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
17 de octubre: Final Cubana 2015 del Concurso de Programación ACM-ICPC.
http://coj.uci.cu/contest/contestview.xhtml?cid07
17 de octubre: Final Cubana 2015 del Concurso de Programación ACM-ICPC.
http://coj.uci.cu/contest/contestview.xhtml?cid07

-
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


Re: [pgsql-es-ayuda] insert eficiente

2015-10-02 Por tema Gerardo Herzig


- 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


Re: [pgsql-es-ayuda] insert eficiente

2015-10-02 Por tema Alvaro Herrera
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 Herrerahttp://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


Re: [pgsql-es-ayuda] insert eficiente

2015-10-01 Por tema Horacio Miranda
Si desactivar los indices no funciona, has pensado en hacer un drop y 
recrearlos despues de la carga ?


On 10/2/2015 11:45 AM, Fernando Rodiño wrote:

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.
/**/
--
Fernando Rodiño Montiel.
Ingeniero de Sistemas
Celular: 3014870456
Medellín.2015


-
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