Pregunta

Estoy buscando sugerencias sobre cómo depurar y solucionar problemas de interbloqueo en una base de datos SQL Server 2000.Me recomendaron usar los indicadores de seguimiento 1024 y 3605, y encontré que me dan lo siguiente:

1024: este indicador de seguimiento devuelve el tipo de bloqueos que participan en el punto muerto y el comando actual afectado.

3605: este indicador de seguimiento envía resultados de seguimiento al registro de errores.

Los procedimientos almacenados, tablas e índices específicos aún deben descubrirse, por lo que el objetivo es utilizar estos indicadores de seguimiento para hacerlo.Y luego, a partir de ahí, sabré mejor qué índices necesitan ajuste, sugerencias de bloqueo para consultas de ajuste y posibles errores de sproc que corregir.

¿Alguna otra sugerencia o historia de guerra con final feliz sobre cómo resolver todo esto hasta convertirlo en un problema común?

¿Fue útil?

Solución

Aquí está la Biblia sobre la solución de problemas de interbloqueos: http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx

Otros consejos

Script muy útil para analizar puntos muertos: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

Una vez que conozca las declaraciones SQL involucradas, un análisis de código seguramente será útil.Algunas reglas básicas comprueban el orden en el que se accede a las filas y el nivel de aislamiento utilizado para las declaraciones SQL.Un seguimiento del perfilador puede ayudar mucho.

La mayoría de las veces, se debe a que un lector intenta obtener un bloqueo compartido en un recurso bloqueado exclusivamente por un escritor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top