Update gran base de datos

08/10/2004 - 12:42 por Javi | Informe spam
Hola grupo.

Tengo que añadir a una base de datos un campo (Tipo_Tienda), una vez hecho
esto, tengo que actualizar este campo con los valores desde otra tabla, la
consulta que estoy haciendo es la siguiente:

UPDATE
SET
db1.Tipo_Tienda = db2.Tipo_Tienda
FROM db1, db2
WHERE db1.ID_Empresa = db2.ID_Empresa AND db1.ID_Filial = db2.ID_Filial AND
db1.ID_Tienda = db2.ID_Tienda

He probado esta consulta en una tabla con 5.000 registros y funciona
correctamente. El problema es a la hora de actualizar la tabla real. Dicha
tabla tiene 75 columnas y más de 30.000.000 de registros. Ayer hice una
copia de esta tabla para lanzar una prueba de actualización, la prueba la
inicié a las 13:00, a través de un DTS, y hoy a las 7:30 seguía el proceso.
No existen mensajes de error, aunque la barra de progreso del DTS no avanza
nada, finalmente he cancelado el proceso de prueba.

¿Existe alguna manera de ver si el proceso está bloqueado o está funcionando
correctamente?
¿Se puede actualizar la tabla poco a poco? Es decir, actualizar los
1.000.000 primeros registros, posteriormente actualizar los 1.000.000
siguientes registros, y así sucesivamente. ¿Es esto posible? ¿cómo?

Gracias

Javi
 

Leer las respuestas

#1 Salvador Ramos
08/10/2004 - 12:52 | Informe spam
Hola:

Claro que se puede actualizar por partes, creo que en ese caso más que
hacerlo para N filas, lo podrías hacer por ejemplo, para una empresa o para
una filial, o para un rango de ID_Tienda

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Javi" escribió en el mensaje
news:
Hola grupo.

Tengo que añadir a una base de datos un campo (Tipo_Tienda), una vez hecho
esto, tengo que actualizar este campo con los valores desde otra tabla, la
consulta que estoy haciendo es la siguiente:

UPDATE
SET
db1.Tipo_Tienda = db2.Tipo_Tienda
FROM db1, db2
WHERE db1.ID_Empresa = db2.ID_Empresa AND db1.ID_Filial = db2.ID_Filial


AND
db1.ID_Tienda = db2.ID_Tienda

He probado esta consulta en una tabla con 5.000 registros y funciona
correctamente. El problema es a la hora de actualizar la tabla real. Dicha
tabla tiene 75 columnas y más de 30.000.000 de registros. Ayer hice una
copia de esta tabla para lanzar una prueba de actualización, la prueba la
inicié a las 13:00, a través de un DTS, y hoy a las 7:30 seguía el


proceso.
No existen mensajes de error, aunque la barra de progreso del DTS no


avanza
nada, finalmente he cancelado el proceso de prueba.

¿Existe alguna manera de ver si el proceso está bloqueado o está


funcionando
correctamente?
¿Se puede actualizar la tabla poco a poco? Es decir, actualizar los
1.000.000 primeros registros, posteriormente actualizar los 1.000.000
siguientes registros, y así sucesivamente. ¿Es esto posible? ¿cómo?

Gracias

Javi


Preguntas similares