Ingreso masivo de data... cual es la mejor forma?

05/07/2005 - 16:54 por Yan Carlos | Informe spam
Hola amigos... cual es la mejor forma de hacer un ingreso masivo de data a
una tabla... actualmente yo lo estoy haciendo con un bucle, pero cuando son
mas de 5000 registros... a veces se satura el servidor y pierde conexion
alguna sugerencia?
Gracias Yan

Preguntas similare

Leer las respuestas

#1 Maxi
05/07/2005 - 17:47 | Informe spam
Hola, un bucle? puff eso es lo peor de todas las tecnicas, cualquier cosa
que hagas que no sea un bucle sera mucho mejor siempre :-)

Si son muchos registros y los tienes en un archivo plano, podrias usar BCP
para mi es muy eficiente de verdad. Sino tambien podrias usar DTS o segun el
caso un Store que haga esta tarea.

Deberiamos conocer mas datos para poderte dar una solucion mas acertada a
tus necesidades.

Un abrazo


Salu2
Maxi


"Yan Carlos" escribió en el mensaje
news:
Hola amigos... cual es la mejor forma de hacer un ingreso masivo de data a
una tabla... actualmente yo lo estoy haciendo con un bucle, pero cuando
son mas de 5000 registros... a veces se satura el servidor y pierde
conexion
alguna sugerencia?
Gracias Yan

Respuesta Responder a este mensaje
#2 Juan
05/07/2005 - 18:51 | Informe spam
Hola Yan Carlos
Por experiencia he realizado un SP para poder hacer un insert masivo y te
recomiendo que hagas un contador para que puedas hacer un Begin y Commit
Transaction, esto te ayuda no saturar el servidor y te realice el insert
masivo
Espero te sirva.

Ej. (Dentro de Sotre Procedure va este codigo)

SET @regs = 0
SET @maxregs = 1000

[Declaramos el Cursor para la consulta]


Begin Transaction -- Comienza la primera transacción

WHILE (@@FETCH_STATUS = 0) -- Mientras el cursor tenga un registro...
BEGIN


SET @regs = @regs + 1
COMMIT
IF @regs >= @maxregs
Begin
Commit Transaction -- Hago COMMIT
Begin Transaction -- Empiezo la nueva transaccion
SET @regs = 0 -- Reinicializo
End
END --End While
Commit Transaction -- Termino cualquier transaccion pendiente

Saludos,
Juan


"Yan Carlos" wrote:

Hola amigos... cual es la mejor forma de hacer un ingreso masivo de data a
una tabla... actualmente yo lo estoy haciendo con un bucle, pero cuando son
mas de 5000 registros... a veces se satura el servidor y pierde conexion
alguna sugerencia?
Gracias Yan



Respuesta Responder a este mensaje
#3 Maxi
05/07/2005 - 19:13 | Informe spam
Juan, esta no es para nada una buena practica, el uso de cursores degradan
considerablemente la performance. Yo he pasado a servidores mas de 3GB
planos por dias en data y con un BCP no ha demorado mas de 10' y nadie se da
cuenta de lo que pasa. Te sugiero como a la otra persona que revisen el uso
del BCP, es justamente la herramienta mas adecuada para realizar este tipo
de tareras


Salu2
Maxi


"Juan" escribió en el mensaje
news:
Hola Yan Carlos
Por experiencia he realizado un SP para poder hacer un insert masivo y te
recomiendo que hagas un contador para que puedas hacer un Begin y Commit
Transaction, esto te ayuda no saturar el servidor y te realice el insert
masivo
Espero te sirva.

Ej. (Dentro de Sotre Procedure va este codigo)

SET @regs = 0
SET @maxregs = 1000

[Declaramos el Cursor para la consulta]


Begin Transaction -- Comienza la primera transacción

WHILE (@@FETCH_STATUS = 0) -- Mientras el cursor tenga un registro...
BEGIN


SET @regs = @regs + 1
COMMIT
IF @regs >= @maxregs
Begin
Commit Transaction -- Hago COMMIT
Begin Transaction -- Empiezo la nueva transaccion
SET @regs = 0 -- Reinicializo
End
END --End While
Commit Transaction -- Termino cualquier transaccion pendiente

Saludos,
Juan


"Yan Carlos" wrote:

Hola amigos... cual es la mejor forma de hacer un ingreso masivo de data
a
una tabla... actualmente yo lo estoy haciendo con un bucle, pero cuando
son
mas de 5000 registros... a veces se satura el servidor y pierde
conexion
alguna sugerencia?
Gracias Yan



Respuesta Responder a este mensaje
#4 Yan Carlos
05/07/2005 - 19:36 | Informe spam
Mmmm... sabia que no era la mejor forma... pero no sabia otra...
Como puedo usar el BCP, tengo un archivo plano y ese tengo que ingresarlo a
una sola tabla...
agradecere tu respuesta...

"Maxi" escribió en el mensaje
news:%
Hola, un bucle? puff eso es lo peor de todas las tecnicas, cualquier cosa
que hagas que no sea un bucle sera mucho mejor siempre :-)

Si son muchos registros y los tienes en un archivo plano, podrias usar BCP
para mi es muy eficiente de verdad. Sino tambien podrias usar DTS o segun
el caso un Store que haga esta tarea.

Deberiamos conocer mas datos para poderte dar una solucion mas acertada a
tus necesidades.

Un abrazo


Salu2
Maxi


"Yan Carlos" escribió en el mensaje
news:
Hola amigos... cual es la mejor forma de hacer un ingreso masivo de data
a una tabla... actualmente yo lo estoy haciendo con un bucle, pero cuando
son mas de 5000 registros... a veces se satura el servidor y pierde
conexion
alguna sugerencia?
Gracias Yan





Respuesta Responder a este mensaje
#5 Yan Carlos
05/07/2005 - 19:42 | Informe spam
Ah! mi archivo plano es un excel...

"Yan Carlos" escribió en el mensaje
news:
Mmmm... sabia que no era la mejor forma... pero no sabia otra...
Como puedo usar el BCP, tengo un archivo plano y ese tengo que ingresarlo
a una sola tabla...
agradecere tu respuesta...

"Maxi" escribió en el mensaje
news:%
Hola, un bucle? puff eso es lo peor de todas las tecnicas, cualquier cosa
que hagas que no sea un bucle sera mucho mejor siempre :-)

Si son muchos registros y los tienes en un archivo plano, podrias usar
BCP para mi es muy eficiente de verdad. Sino tambien podrias usar DTS o
segun el caso un Store que haga esta tarea.

Deberiamos conocer mas datos para poderte dar una solucion mas acertada a
tus necesidades.

Un abrazo


Salu2
Maxi


"Yan Carlos" escribió en el mensaje
news:
Hola amigos... cual es la mejor forma de hacer un ingreso masivo de data
a una tabla... actualmente yo lo estoy haciendo con un bucle, pero
cuando son mas de 5000 registros... a veces se satura el servidor y
pierde conexion
alguna sugerencia?
Gracias Yan









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida