Update Masivo!!!

03/01/2007 - 00:48 por Irak Rubio | Informe spam
Hola Grupo que tal.
Resulta que via ftp recibo un archivo de los llamados "postulados SQL" con
aproximadamente un millon de sentencias de actualización SQL..

Cuando los recibo, abro el archivito de texto de aprox. 185MB y recorro
linea por linea y voy actualizando registro por registro en mi Servidor SQL
Local.

Para la actualización ocupo Visual Basic 6.0 con ADO2.8 y lo hago
directamente desde un objeto connection mas o menos asi:
Dim Instruccion as String
do while not eof(nofile)
line input #NoFile, Instruccion
Cn.Execute Instruccion
Loop

La instruccion trae un comando de actualizacion (UPDATE) que viene
condicionado
a una llave x...

UPDATE MiTabla Set MiCampo=MiValor Where MiLlave=MisValores

Considerando que las tablas tienen tropocientosmil registros debo decirles que
este proceso es demasiado LENTO! me llevo dos horas actualizar 1 millón de
registros

Todo esto sale a relucir, porque a diferencia del UPDATE, He visto que
SQLServer tiene un comando de carga masiva de datos llamada BulkCopy (que es
extremadamente rápida), pero que solamente hace "Inserts"... Yo quisiera algo
así como una especie de BulkUpdate o ver si existe algún consejo de cómo
puedo harle para hacer que el rendimiento de mis sentencias sea mayor...

Gracias por tu tiempo.
 

Leer las respuestas

#1 Maxi
03/01/2007 - 03:07 | Informe spam
Hola, habria que analizarlo mas en detalle, pero en principio si necesitas
hacer 1M de updates por dia no veo otro camino. Lo que me llama la etencion
es que debas hacer tantos updates por dia? esos registros van cambiando tan
rapido? si usas SQLServer en el otro extremo has pensado en usar
replicacion?


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
http://maxiaccotto.blogspot.com/
"Irak Rubio" wrote in message
news:
Hola Grupo que tal.
Resulta que via ftp recibo un archivo de los llamados "postulados SQL" con
aproximadamente un millon de sentencias de actualización SQL..

Cuando los recibo, abro el archivito de texto de aprox. 185MB y recorro
linea por linea y voy actualizando registro por registro en mi Servidor
SQL
Local.

Para la actualización ocupo Visual Basic 6.0 con ADO2.8 y lo hago
directamente desde un objeto connection mas o menos asi:
Dim Instruccion as String
do while not eof(nofile)
line input #NoFile, Instruccion
Cn.Execute Instruccion
Loop

La instruccion trae un comando de actualizacion (UPDATE) que viene
condicionado
a una llave x...

UPDATE MiTabla Set MiCampo=MiValor Where MiLlave=MisValores

Considerando que las tablas tienen tropocientosmil registros debo decirles
que
este proceso es demasiado LENTO! me llevo dos horas actualizar 1 millón de
registros

Todo esto sale a relucir, porque a diferencia del UPDATE, He visto que
SQLServer tiene un comando de carga masiva de datos llamada BulkCopy (que
es
extremadamente rápida), pero que solamente hace "Inserts"... Yo quisiera
algo
así como una especie de BulkUpdate o ver si existe algún consejo de cómo
puedo harle para hacer que el rendimiento de mis sentencias sea mayor...

Gracias por tu tiempo.




Preguntas similares