Insert into xx Select from yyy

20/06/2006 - 15:36 por FB | Informe spam
Hola. tengo el siguiente problema: necesito hacer insert masivos a una
tabla que tiene aprox. 10.000.000 registros. Necesito insertarles aprox.
200.000 por vez. El problema que tengo es que esta insercion demora bastante
y necesito bajar ese tiempo. Estimo que demora porque en cada insert va
reconstruyendo los indices de la tabla (que tiene 4). La pregunta es:
existe otro metodo para hacer este insert que sea mas rapido ?. una opcion
puede ser que no reindexe sino hasta el finale del insert (se puede?). Con
bulk insert no puedo porque los datos los tengo en SQLServer.

muchas gracias
 

Leer las respuestas

#1 Alejandro Mesa
20/06/2006 - 16:12 | Informe spam
FB,

elmina los indices, inserta la data y luego recrea los indices (al menos los
nonclustered - en el caso del clustered, ordena la data en la insercion).

drop index ...
drop index ...
drop index ...

insert into xxx(c1, c2, ..., cn)
select c1, c2, ..., cn
from yyy
order by c1

create index ...
create index ...
create index ...
go


AMB


"FB" wrote:

Hola. tengo el siguiente problema: necesito hacer insert masivos a una
tabla que tiene aprox. 10.000.000 registros. Necesito insertarles aprox.
200.000 por vez. El problema que tengo es que esta insercion demora bastante
y necesito bajar ese tiempo. Estimo que demora porque en cada insert va
reconstruyendo los indices de la tabla (que tiene 4). La pregunta es:
existe otro metodo para hacer este insert que sea mas rapido ?. una opcion
puede ser que no reindexe sino hasta el finale del insert (se puede?). Con
bulk insert no puedo porque los datos los tengo en SQLServer.

muchas gracias





Preguntas similares