Qué es más rápido: INSERT INTO o sp_executeSql

23/03/2007 - 13:44 por José Luis Capel - Aicom | Informe spam
Hola,

Tengo que hacer un volcado masivo de datos a un servidor SqlServer2000 a
través de Ado.

Actualmente estoy usando la sentencia INSERT INTO por cada fila.

Algo así:

FOR x := 1 TO 2000
...
oAdo:Execute("INSERT INTO miTabla VALUES( ..)")
...
NEXT

Me gustaría conocer vuestra opinión si cambio esa forma de hacer el insert
por


FOR x := 1 TO 2000
...
oAdo:Execute("exec sp_executesql N'INSERT INTO ..")
...
NEXT


Cualquier guia o ayuda será agradecida.

Saludos,
José Luis Capel

Preguntas similare

Leer las respuestas

#16 Jose Mariano Alvarez
28/03/2007 - 04:25 | Informe spam
Podrias postear el contenido del sp_executeSQL ?



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.



"José Luis Capel - Aicom" wrote in message
news:
José Mariano,

Hago una llamada al sp_executeSql para cada insert. Y normalmente hay
entre 1000 a 2000 filas para añadir.

Saludos,
José Luis Capel


"Jose Mariano Alvarez"
escribió en el
mensaje news:%
Cuantas veces lo llamas?
Si es una sola vez no tiene sentido la diferencia.




Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.



"José Luis Capel - Aicom" wrote in message
news:%23F%
Maxi,

He leido en el BOL (o por lo menos así lo he entendido yo) que los
sp_executeSql queda 'precompilado' en el servidor sql server con lo
cual, ante llamadas repetitivas, se procesa un poco más rápido.

¿Lo entendí bien?

Saludos y gracias por tu ayuda,
José Luis Capel

"Maxi" escribió en el mensaje
news:
Hola, no podemos comparar vacas con aviones, una cosa es insert into y
otra es SQL_dinamico donde dentro podrias tambien usar insert into


Saludos

[Microsoft MVP SQL Server]
SQLTOTALConsulting - Servicios y consultoria de SQLServer
www.sqlgurus.org
Buenos Aires - Argentina
http://msmvps.com/blogs/maxiaccotto/
"José Luis Capel - Aicom" wrote in message
news:%
Hola Maxi,

Hola, son 2 cosas totalmente distintas, si es masivo porque no usas

INSERT INTO TUTABLA
SELECT CAMPOS FROM TABLA_ORIGINAL




Ya me gustaría hacerlo como indicas... pero el caso es que los insert
masivos son de una tabla DBF (xBase) a Sql Server...

¿Cuales diferencias básicas hay entre Insert Into y sp_executeSql?

Saludos y gracias por tu ayuda.
José Luis Capel


















email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida