Estoy teniendo problemas con una base de datos.
Puedo ejecutar consultas básicas, aunque mucho más lento de lo normal.
Cuando intento ver los árboles de jerarquía para tablas, vistas o procedimientos en el Explorador de objetos SSMS, obtengo
lock request time out period exceeded
.Mis informes SSRS que se ejecutan en objetos en esta base de datos ya no se están completando.
Los trabajos asociados con los procedimientos almacenados en esta base de datos tampoco se ejecutan.
Intenté usar sp_who2
para encontrar y eliminar todas las conexiones en la base de datos, sin embargo, esto no ha resuelto el problema.
¿Que esta pasando aqui? ¿Cómo puedo resolver esto?
sql-server
sql-server-2008
Lloyd Banks
fuente
fuente
Respuestas:
Fue causado por una reversión perpetua de una transacción. Finalmente tuve que reiniciar mi clúster de servidores
fuente
Excluyendo la consideración de Harware, tal vez necesite ejecutar el script para verificar cuáles son las actividades que retienen la Sesión SQL, uno de los escenarios comunes es no usar un
Implicit transactions Option
en SQL Server Management Studio.fuente
locking request time out period exceed
que diría que correrimplicit transaction option
daría una mejor pista de las causas.Recibí este problema cuando comencé una transacción explícita en la que creé una tabla en tempdb a partir de un script que se ejecuta en otra base de datos (no tempdb). Cuando comprometí la transacción, la confirmación no parecía liberar el bloqueo en la tabla que había creado en tempdb.
Gracias a esta página , hice
USE
tempdb y ejecuté yDBCC OPENTRAN
obtuve el SPID de la conexión a tempdb que estaba causando el bloqueo. Entonces yoKILL <SPID number>
para matarlo.No es muy elegante, y perdí toda la información en la tabla que había creado en tempdb, pero eso estaba bien en mi caso.
fuente
Hay tantas cosas que esto podría ser que todo lo que puedo ofrecer son algunas preguntas para ayudarlo a orientarse hacia una respuesta.
¿Está la base de datos en un servidor dedicado solo a ejecutar SQL Server? De lo contrario, otros procesos podrían estar interfiriendo al robar el valioso tiempo del procesador.
¿Está el servidor de base de datos esencialmente sin memoria? SQL Server intentará asignar cada byte que pueda, pero si está lleno y sus consultas requieren que se carguen más datos, entonces tiene que recurrir al uso de memoria virtual, lo que aumenta radicalmente la cantidad de tiempo que pueden tomar incluso consultas simples.
¿El ancho de banda de la red del servidor DB es pequeño para manejar la transferencia de datos de manera oportuna?
Al final del día, parece que la máquina en la que aloja SQL Server es de tamaño inferior a lo que está tratando de hacer. Es completamente posible que finalmente haya alcanzado esos límites de hardware donde el rendimiento está disminuyendo radicalmente. Si este es el caso (las preguntas anteriores lo ayudarán a determinarlo), entonces querrá mover la base de datos a un servidor que tenga el tamaño adecuado para la cantidad de datos (y consultas) que está tratando de procesar.
Esto podría significar usar procesadores más rápidos, unidades más rápidas o simplemente instalar más RAM.
fuente
"Cuando intento ver los árboles de jerarquía de tablas, vistas o procedimientos en el Explorador de objetos de SSMS, obtengo un tiempo de espera de solicitud de bloqueo excedido".
Tuve exactamente el mismo problema. Fui a la ventana de ejecución de consultas y;
ROLLBACK
declaración escrita y ejecutada .Parece que algunas de las series de declaraciones que estaba ejecutando antes de eso, tenían una transacción abierta. Específicamente, porque algunos de ellos eran declaraciones DDL. Una vez que emití la reversión, las jerarquías de objetos comenzaron a funcionar.
fuente
Como muchos ya lo habían señalado, por lo general, hay una transacción duradera, que en su mayoría causó que mi señorita usara SET IMPLICIT TRANSACTIONS ON, que no debe usarse en absoluto. Para ver por qué revisa el perspicaz artículo de Brent Ozar
De todos modos, puede obtener una lista de transacciones pendientes de larga duración utilizando la siguiente consulta.
https://www.brentozar.com/archive/2018/02/set-implicit_transactions-one-hell-bad-idea/
fuente