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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Juan Barahona D.
08/10/2004 - 22:38 | Informe spam
tambien puedes hacer la actualizacion atraves de un procedimiento
almacenado. Con instruccion directas y sin utilizar DTS, saludos JuanE!

"Salvador Ramos" escribió en el
mensaje news:
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
>
>


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