lentitud en hacer un insert into

09/11/2004 - 12:08 por reo | Informe spam
desde una tabla temporal donde tengo unos datos estoy tratando de
insertarlos en la tabla definitiva
mediante insert into,es decir

insert into tabla_definitiva(campo1,campo2,campo3,...,campo20) select * from
#tabla_temporal

bueno , pues esto que parece simple se me va a mas de 3 minutos.

lo he puesto con cursores , es decir
declare rst cursor for select * from #tabla_temporal
open rst
fetch next into rst @campo1,@campo2,...,@campo20
while
BEGIN
insert into insert into
tabla_definitiva(campo1,campo2,campo3,...,campo20) values
(@campo1,@campo2,...,@campo20)
fetch next into rst @campo1,@campo2,...,@campo20
END
close rst
deallocate rst

y me tarda 1 minuto 20 segundos.

notas:
la sentencia sql no me da errores, simplemente tarda mucho.
tengo 4 triggers en la tabla tabla_definitiva
tengo bastantes claves ajenas de la tabla_definitiva a otras tablas
tengo 438000 registros en la tabla definitiva
tengo 4 registros en la tabla tabla_temporal

¿como puedo hacer para que tarde menos?

muchas gracias
 

Leer las respuestas

#1 ancor68
24/10/2012 - 18:46 | Informe spam
reo escribió el 09/11/2004 12:08 :
desde una tabla temporal donde tengo unos datos estoy tratando de
insertarlos en la tabla definitiva
mediante insert into,es decir

insert into tabla_definitiva(campo1,campo2,campo3,...,campo20) select * from
#tabla_temporal

bueno , pues esto que parece simple se me va a mas de 3 minutos.

lo he puesto con cursores , es decir
declare rst cursor for select * from #tabla_temporal
open rst
fetch next into rst @campo1,@campo2,...,@campo20
while
BEGIN
insert into insert into
tabla_definitiva(campo1,campo2,campo3,...,campo20) values
(@campo1,@campo2,...,@campo20)
fetch next into rst @campo1,@campo2,...,@campo20
END
close rst
deallocate rst

y me tarda 1 minuto 20 segundos.

notas:
la sentencia sql no me da errores, simplemente tarda mucho.
tengo 4 triggers en la tabla tabla_definitiva
tengo bastantes claves ajenas de la tabla_definitiva a otras tablas
tengo 438000 registros en la tabla definitiva
tengo 4 registros en la tabla tabla_temporal

¿como puedo hacer para que tarde menos?

muchas gracias


No debería tardar en ningún caso a no ser que esa tabla tenga muchos idx definidos...

Preguntas similares