Solución Confirmada / actualizaciones-masivas-deadlock
Deadlock por combinación de bloqueos en actualizaciones masivas
Diagnóstico del error
Cuando múltiples instancias de actualización se ejecutan en paralelo sin un control adecuado, resultando en combinaciones de bloqueos que generan un deadlock. El uso intensivo de `UPDATE` en lotes grandes en una misma tabla puede ser problemático.
Fix Sugerido
Dividir las actualizaciones masivas en lotes más pequeños y aplicar bloqueos en un orden consistente. Implementar la paginación o el procesamiento por lotes:
```sql
DECLARE @BatchSize INT = 500;
DECLARE @CurrentBatch INT = 1;
WHILE (1 = 1)
BEGIN
BEGIN TRANSACTION;
UPDATE TOP (@BatchSize) Clientes SET estado = 'activo' WHERE estado = 'inactivo';
IF @@ROWCOUNT = 0 BREAK;
COMMIT;
SET @CurrentBatch = @CurrentBatch + 1;
END
```