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

Interbloqueo de bloqueos de rango en el índice de clave principal

Es un punto muerto clásico cuando un proceso (víctima) lee serializable nivel y otro actualiza la misma tabla agrupada.

Estás confundido con lo que se convierte en qué.

El primer proceso ("process5e13b88") ha adquirido RangeS-S lock y espera otro RangS-S candado (donde hay X bloqueo del proceso de actualización), no convierte nada.

El segundo "process5e45b88" ha adquirido X bloquear en una tecla y U en otra clave y quiere convertirla a X pero no puede porque hay RangeS-S bloquear.

Adjunto la imagen donde se puede ver que un proceso quiere y adquiere solo RangeS-S candados y otro solo X cerraduras.

Cuando veas RangeS-U bloquear esto significa que hay RangeS-S bloqueo en el rango pero la clave en sí tiene U bloquear