Transacción de consulta iniciada pero nunca termina

Ejecuto una consulta a veces y simplemente se cuelga. Voy a ver los procesos en el Monitor de actividad (SQL Server 2008 R2) y lo muestra y solo que la transacción está abierta y manguera todo el servidor.

Esto no tiene sentido, incluso si se tratara de una consulta de larga duración, en algún momento debería expirar.

Le hago un seguimiento y me sale esto:

enter image description here

¿Alguna sugerencia?

preguntado el 02 de julio de 12 a las 15:07

¿Puedes mostrarnos la consulta que ejecutas? -

Puede ser una transacción iniciada explícitamente que encontró un error y nunca se comprometió ni se revirtió. -

Si su consulta tiene BEGIN TRANSACTION, entonces esa transacción permanece abierta mucho después de que la consulta haya finalizado, en realidad hasta que confirme, revierta o se confirme/revierta por usted. Necesitamos más detalles para ayudarte a determinar el problema. -

Entonces, ¿debería hacer qué en mi consulta para confirmar y revertir? -

1 Respuestas

BEGIN TRANSACTION
INSERT INTO ... VALUES ...
GO

El olvidadizo Fred abrió una transacción y fue a almorzar. No hay nada para el tiempo de espera ya que no hay ninguna solicitud activa. El usuario debe confirmar o revertir explícitamente, eventualmente. Un administrador puede terminar por la fuerza la sesión infractora usando KILL. Dicha sesión/transacción puede permanecer abierta durante años si se deja en sus propios dispositivos (suponiendo que no se quede sin registro y no reinicie el servidor).

Pueden ocurrir escenarios más complicados incluso cuando el usuario sí logró emitir un COMMIT, si se trata de transacciones distribuidas, consulte Cómo funciona: transacción DTC huérfana (sesión/SPID = -2).

Respondido 02 Jul 12, 15:07

cuando trato de eliminar el proceso, obtengo que el Monitor de actividad no puede ejecutar consultas en el servidor CORP-SQL08DV,40001. El Monitor de actividad de esta instancia se colocará en un estado de pausa. Use el menú contextual en el panel de descripción general para reanudar el Monitor de actividad. - ChicoPositivo

hay un proceso restante que no podemos dejar de ir en contra de la base de datos tempdb, algo sobre SET @is_policy_automation_enabled = (SELECT CONVERT(bit, current_value). Esta consulta se está ejecutando para siempre y parece estar gestionando todo. FROM msdb.dbo.syspolicy_configuration DONDE nombre = 'Habilitado') - ChicoPositivo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.