2014-07-21 16:06 GMT-03:00 Manuel A. Estevez Fernandez <stvz...@gmail.com>:
> > Proceso 1 : > -Creo tabla. > -Cargo datos > -Genero indices > > o > Proceso 2: > -Trunco tabla con los indices ya creados. > -Cargo Datos > > > Proceso 1 es más eficiente. Además te permite luego crear los índices en paralelo y aprovechar tus múltiples cores si disparas los CREATE INDEX desde sesiones independientes. La creación de índices sobre tablas muy grandes la podes acelerar incrementando el parámetro de la base maintenance_work_mem. Si vas a paralelizar la creación de índices asegurate de darle suficiente RAM para que almacene los índices completos en memoria. También puedes setear fsync = off para acelerar notablemente la tasa de escritura. Sugiero lo hagas sólo si la base es prescindible y te puedes permitir perder información en caso de falla (ej. corte de energía). Algo perfectamente válido para una base que se recrea diariamente para la carga de datos de un DW. Acá hay más info de como acelerar la carga: http://www.postgresql.org/docs/9.3/static/populate.html Saludos.