sql >> Base de Datos >  >> RDS >> Sqlserver

Evitar el interbloqueo mediante el uso de la sugerencia NOLOCK

Se esperan interbloqueos ocasionales en un RDBMS que se bloquea como SQL Server/Sybase.

Puede codificar en el cliente para volver a intentar según lo recomendado mi MSDN "Handling Deadlocks" .Básicamente, examina la SQLException y tal vez medio segundo después, inténtalo de nuevo.

De lo contrario, debe revisar su código para que todos los accesos a las tablas estén en el mismo orden. O puede usar SET DEADLOCK_PRIORITY para controlar quién se convierte en víctima.

En MSDN para SQL Server hay "Minimizing Deadlocks" que comienza

Esto también menciona "Usar un nivel de aislamiento inferior", que no me gusta (al igual que muchos tipos de SQL aquí en SO) y es su pregunta. No lo hagas es la respuesta... :-)

Nota:MVCC escriba RDBMS (Oracle, Postgres) no tiene este problema. Consulte http://en.wikipedia.org/wiki/ACID#Locking_vs_multiversioning pero MVCC tiene otros problemas.