Lo primero para empezar el trabajo con SQL Server es preparar el ambiente. La instalación…
¿Qué locks genera una conexión en SQL Server?
Todas las acciones en Base de Datos pueden causar un determinado Lock como hemos ido viendo en una serie de publicaciones que empiezan en responder ¿Qué son los Bloqueos en SQL Server?
Cuando entramos a mayor detalle necesitamos saber qué locks genera una conexión específica; en pocas palabras, qué es lo que causa una acción particular.
Para determinar qué locks genera una conexión
Lo primero es identificar qué conexión vamos a analizar. Inicialmente podríamos apuntar a aquella conexión que está realizando una modificación de datos pues queremos entender qué nivel de Locking ha causado.
SELECT
[resource_type],
[resource_subtype],
[request_mode],
COUNT(*) AS [ReqCount]
FROM [sys].[dm_tran_locks]
WHERE [request_session_id] = 35 --@sessionId
GROUP BY
[resource_type],
[resource_subtype],
[request_mode]
Nótese que existe un valor de session_id que debe ser reemplazado por el número de sesión que deseamos analizar. Para evitar este reemplazo, utilizamos la misma consulta pero en formato de Procedimiento Almacenado que puedes verlo aquí. Así, simplemente se ejecutará el llamado al SP mandando como parámetro el número de sesión.
Para recordar la interpretación de estos valores, puedes revisar los Tipos de Bloqueos en SQL Server y para ver en casos reales la revisión detallada de estos escenarios, te invito a que te registres al próximo evento Webinar en Vivo o sigas las grabaciones del Canal de Youtube.