La pestaña DeadLock en ApsaraDB RDS for SQL Server muestra los eventos de interbloqueo de su instancia, incluidos la hora de inicio de la transacción, los ID de sesión, los recursos bloqueados y los tipos de interbloqueo. Utilice esta información para identificar y corregir las instrucciones SQL y las transacciones que causan los interbloqueos.
Funcionamiento
Cuando una transacción modifica un recurso, SQL Server bloquea dicho recurso para impedir modificaciones simultáneas y preservar la consistencia de los datos.
Se produce un interbloqueo cuando dos transacciones retienen cada una un bloqueo que la otra necesita. Por ejemplo, la Transacción A bloquea el Recurso A y espera al Recurso B, mientras que la Transacción B bloquea el Recurso B y espera al Recurso A. Ninguna de las dos transacciones puede continuar, por lo que SQL Server finaliza una de ellas.

SQL Server selecciona la sesión que se debe finalizar según el costo de reversión: termina la sesión cuya transacción pueda revertirse con el menor costo, denominada víctima del interbloqueo. Por ejemplo, si ocurre un interbloqueo entre una sesión SELECT y una sesión UPDATE, SQL Server finaliza la sesión SELECT porque su reversión es menos costosa.
Conceptos clave
Tipos de interbloqueo
ApsaraDB RDS for SQL Server detecta los siguientes tipos de interbloqueo:
KeyDeadlock
ObjectDeadLock
RIDDeadlock
PageDeadlock
ComplieDeadlock
Para obtener detalles sobre cada tipo, consulte Granularidad y jerarquías de bloqueo.
Modos de bloqueo
El lock mode aplicado a un recurso depende del tipo de acceso:
Compartido (S): El recurso se puede leer, pero no modificar, hasta que la transacción libere el bloqueo compartido.
Actualización (U): Otra transacción no puede modificar el recurso hasta que adquiera un bloqueo exclusivo sobre él.
Exclusivo (X): Ninguna otra transacción puede acceder al recurso hasta que la transacción que lo bloquea libere el bloqueo exclusivo.
Requisitos previos
Antes de empezar, asegúrese de que:
Su instancia RDS no ejecute SQL Server 2008 R2 con discos en la nube.
Su instancia RDS se encuentre en una de las siguientes regiones: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Chengdu), China (Hong Kong), Singapore o UAE (Dubai).
Consulta de detalles de interbloqueos
Vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside su instancia RDS y luego haga clic en el ID de la instancia.
En el panel de navegación izquierdo, elija Autonomy Services > Lock Optimization.
Referencia de la pestaña DeadLock
Cantidad de interbloqueos
Muestra el número de interbloqueos en intervalos de tiempo recientes. Especifique un intervalo de tiempo para filtrar los resultados.

Tendencia de interbloqueos
Muestra la distribución de los tipos de interbloqueo durante un intervalo de tiempo.

Establezca una start time y una end time, y luego haga clic en Search. El intervalo de tiempo no puede superar los 30 días.
Haga clic en Last 24 Hours, Last 7 Days o Last Month para usar un intervalo predefinido.
Pase el cursor sobre un punto de datos para ver los tipos y recuentos de interbloqueos en ese momento.
Use los iconos
en la esquina superior derecha del gráfico para cambiar el estilo de visualización o descargar el gráfico como imagen.
Detalles del interbloqueo

Haga clic en el icono
junto a un registro de interbloqueo para expandir los detalles de la sesión bloqueante y la sesión bloqueada.
|
Campo |
Descripción |
|
LastTranStarted |
Hora en que inició la transacción en la sesión |
|
SPID |
ID de sesión |
|
IsVictim |
Indica si la sesión se finalizó como víctima del interbloqueo |
|
LogUsed |
Tamaño del registro de transacciones generado en la sesión, en bytes |
|
LockMode |
Modo de bloqueo retenido por la sesión |
|
WaitResourceDesc |
Detalles del recurso que la transacción está esperando |
|
ObjectOwned |
Objeto bloqueado por la sesión |
|
ObjectRequested |
Objeto que la transacción intenta bloquear |
|
WaitResource |
Nombre del recurso que la transacción está esperando |
|
HostName |
Host donde se ejecuta la transacción |
|
LoginName |
Cuenta utilizada para ejecutar la transacción |
|
Status |
Estado de la transacción en la sesión |
|
ClientApp |
Cliente que inició la transacción |
|
SQLText |
Instrucción SQL ejecutada en la sesión. Haga clic en la instrucción para copiarla y analizarla posteriormente. |
Haga clic en un registro de interbloqueo para abrir la sección Deadlock Diagram.
Diagrama de interbloqueo

Muestra las relaciones entre las sesiones bloqueantes y bloqueadas, junto con detalles sobre los recursos bloqueados. Haga clic en Download para descargar el archivo XDL y luego ábralo en SQL Server Management Studio (SSMS) para ver el gráfico completo del interbloqueo.
Pasos siguientes
¿Qué hago si ocurre un interbloqueo en una instancia de ApsaraDB RDS for SQL Server?