Optimización de UPDATE
Publicado por ANTONIO (28 intervenciones) el 24/09/2020 12:25:17
Hola tengo un problema a la hora de hacer un update. Este es mi código en C#:
El problema es que tarda mucho. Me he planteado hacerlo por lotes (normalmente leería unos 71.000 rows) de esta forma:
Pero no se si hay alguna forma mejor como en procedimientos almacenados. ¿Podríais asesorarme? Muchas gracias.
1
2
3
4
5
6
7
8
9
UPDATE MPrecios
SET PendienteCalculo = 1,
FechaHoraModificado = GETDATE(),
IdUsuarioModifica = idUsuarioModifica
WHERE Borrado = 0 AND IdRegActivo IS NULL
AdminSQLGestion.CondicionFechaSinCaducar("MPrecios") + " " +
AND IdTipoCalculoPrecio <> 3 --Sólo los que no sean precio fijo
AND IdOrigen = idOrigen
AND IdDestino = idDestino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DECLARE @i INT=1
WHILE( @i <= 10 ) -- o lo que sea pertinente
BEGIN
UPDATE TOP(50) MPrecios
SET PendienteCalculo = 1,
FechaHoraModificado = GETDATE(),
IdUsuarioModifica = idUsuarioModifica
WHERE Borrado = 0 AND IdRegActivo IS NULL
--AdminSQLGestion.CondicionFechaSinCaducar("MPrecios") + " " +
AND IdTipoCalculoPrecio <> 3 --Sólo los que no sean precio fijo
AND IdOrigen = idOrigen
AND IdDestino = idDestino
SET @i=@i + 1
END
Valora esta pregunta


0