Ver Mensaje Individual
  #3  
Antiguo 30-06-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Lo segundo -WITH (NOLOCK)- debería ser algo "casi-obligatorio" a realizar en todos las consultas de la aplicación, para evitar bloqueos.
.
No. Un bloqueo NO ES para "evitar". Es algo necesario para que todo el andamio de las transacciones funcione correcto!

Este error esta gritando algo muy serio. Una ENORME falla en la forma de hacer las consultas. Es como cuando el compilador te da un error: No es para "darle la vuelta", es para que corrijas el código, que esta MALO*.


Cuando miras los docs acerca de esto, veras que pa que suceda hay que usar la BD con uno o varios anti-patrones.

Se podrían resumirse en "Hago de cuenta que yo soy el único usuario y que esta es una BD local y que ademas la trato sin misericordia como con dbase".

----

*PD: El uso de "hints" como NOLOCK es para uso limitado en casos muy especiales donde has PROBADO que la BD esta siendo *mas* precavida de lo necesario, pero NO ES para quitarle lo precavida! Si le reduces la fiabilidad al motor arriesgas un problema mayor en cualquier momento (como los animales que le quitan el fsync disque pa que sea "rapidísima"!).

En otras palabras: Es muy dudoso que el programador promedio que le da lio armar un SQL y que ni sabe usar el query planer venga y haga esto bien. Lo malo es que el compilador/motor ASUME que REALMENTE eres MAS listo que el y le hace mas caso a lo que digas.

Una forma de hacer una burrada de lo lindo (ie: Cuanto se te corrompa la BD no llores):

https://support.microsoft.com/en-us/...-a-complex-upd
__________________
El malabarista.
Responder Con Cita