Hola amigos. Nunca habÃa tenido este problema. Pero desde hace poco tiempo, en mi base de datos se estan generando muchos bloqueos. A veces llegan incluso a 20 concurrentes. PodrÃais decirme de que manera puedo trabajar con los bloqueos, locks, deadlocks, para averiguar pq se producen¿?. Me puede ayudar el SQL Server Profiler¿?. Por favor ayuda. Gracias y un saludo.
Hay varias formas de buscar las razones de los bloqueos. Muchas de ellas las prodrás encontrar en varios artÃculos en este forum. Lo primero es utilizar el sp_who2 para descubrir cuáles son los procesos (ID) que están siendo bloqueados y a su vez el primero en la cadena de bloqueos. Dado que el sp_who2 te muestra los usuarios bloqueados incluyendo al original, puedes preguntarle a ellos que trabajo están haciendo. Con esto puedes conocer qué o cuáles tablas son el objeto del bloqueo. Adicionalmente puede ejecutar el Profiler con eventos de TSQL y SP, con columnas de duración y nombre del usuario. Al final de la traza del Profiler, lo puedes ordenar por usuario, duración. Las duraciones más grandes, seguramente son las bloqueadas. Allà encontrarás el o los queries que ocasionan tal bloqueo. A partir de allÃ, dependerá si la aplicación es cerrada o de terceras partes o propia con código abierto. Seguramente tendrás que hablar con los desarrolladores para ver cómo se puede mejorar. El anterior son los casos más difÃciles de resolver. También podrÃa ser que se trata de un informe que bloquea una tabla o algo parecido. En esos casos una optimización de Ãndices podrÃa bastar o no. Espero que con lo anterior tengas por donde empezar a analizar.