v17 studio management sql sql-server sql-server-2008

v17 - sql server management studio express



¿Cómo matar/detener una consulta SQL larga inmediatamente? (10)

¿Cuál podría ser el motivo?

Una cancelación de consulta es inmediata, siempre que su attention pueda llegar al servidor y ser procesada. Una consulta debe estar en un estado cancelable, que casi siempre es verdadero, excepto si realiza ciertas operaciones, como llamar a un servicio web desde SQLCLR. Si su atención no puede llegar al servidor, generalmente se debe a una sobrecarga del scheduler .

Pero si su consulta es parte de una transacción que debe deshacerse, la reversión no se puede interrumpir. Si lleva 10 minutos, necesita 10 minutos y no hay nada que pueda hacer al respecto. Incluso reiniciar el servidor no ayudará, solo hará que el inicio sea más largo ya que la recuperación debe finalizar la reversión.

Para responder a qué motivo específico se aplica a su caso, deberá investigarlo usted mismo.

Estoy usando SQL Server 2008 y su estudio de administración. Ejecuté una consulta que produce muchas filas. Traté de cancelarlo mediante el botón rojo de cancelar, pero no se detuvo durante los últimos 10 minutos. Por lo general, se detiene en 3 minutos.

¿Cuál podría ser el motivo y cómo lo detengo de inmediato?


Esta es una respuesta algo tonta, pero funciona de manera confiable al menos en mi caso: en el estudio de gestión, cuando "Cancelar ejecución de consulta" no detiene la consulta, simplemente hago clic para cerrar el documento sql actual. me pregunta si quiero cancelar la consulta, digo que sí, y he aquí que en unos segundos deja de ejecutarse. Después de eso, me pregunta si quiero guardar el documento antes de cerrar. En este punto, puedo hacer clic en Cancelar para mantener el documento abierto y continuar trabajando. No tengo idea de lo que sucede detrás de escena, pero parece funcionar.


He estado sufriendo de lo mismo desde hace mucho tiempo. Esto sucede especialmente cuando está conectado al servidor remoto (que puede ser lento), o tiene una conexión de red deficiente. Dudo si Microsoft sabe cuál es la respuesta correcta.

Pero desde que traté de encontrar la solución. Solo 1 enfoque de laico trabajó

  • Haga clic en el botón de cerrar sobre la pestaña de consulta que le está sufriendo. Después de un tiempo (¡Si Microsoft no es duro con usted!), Es posible que aparezca una ventana preguntándole esto

"La consulta se está ejecutando actualmente. ¿Desea cancelar la consulta?"

  • Haga clic en "Sí"

  • Después de un tiempo, le preguntará si desea guardar esta consulta o no.

  • Haga clic en "Cancelar"

Y publique eso, puede ser que su estudio esté estable nuevamente para ejecutar su consulta.

Lo que hace en segundo plano es desconectar la ventana de consulta con la conexión. Por lo tanto, para ejecutar la consulta nuevamente, llevará tiempo conectar nuevamente el servidor remoto. Pero créeme, esta compensación es mucho mejor que el sufrimiento de ver ese temporizador que funciona por la eternidad.

PD: Esto funciona para mí, Kudos si funciona para ti también. !!!


Por mi parte, mi sql se colgó cuando traté de cerrarlo mientras corría interminablemente. Entonces, lo que hice fue abrir mi administrador de tareas y finalizar la tarea mi consulta SQL. Esto detiene mi SQL y lo reinicia.


Primero ejecuta el siguiente comando:

sp_who2

Después de eso, ejecute el siguiente comando con SPID, que obtuvo del comando anterior:

KILL {SPID value}


Puede usar un atajo de teclado ALT + Break para detener la ejecución de la consulta. Sin embargo, esto puede no tener éxito en todos los casos.


Si cancelas y ves esa corrida

sp_who2 ''active''

(El Monitor de actividad no estará disponible en el antiguo servidor sql 2000 FYI)

Encuentra el SPID que deseas matar, por ejemplo, 81

Kill 81

Ejecute de nuevo sp_who2 ''active'' y probablemente se dará cuenta de que está durmiendo ... retrocediendo

Para hacer que el ESTADO vuelva a correr, el KILL

Kill 81

Entonces recibirás un mensaje como este

SPID 81: transaction rollback in progress. Estimated rollback completion: 63%. Estimated time remaining: 992 seconds.


Una respuesta simple, si el cuadro rojo de "detener" no funciona, es presionar los botones "Ctrl + Break" en el teclado.

Si está ejecutando SQL Server en Linux, hay una aplicación que puede agregar a su bandeja llamada "killall". Simplemente haga clic en el botón "killall" y luego haga clic en el programa que está atrapado en un bucle y terminará el programa. Espero que ayude.


aparentemente en el servidor sql 2008 r2 64bit, con la consulta de larga ejecución de IIS, el kill spid no parece funcionar, la consulta simplemente se reinicia una y otra vez. y parece estar reutilizando el spid. la consulta está causando que el servidor SQL tome como 35% de CPU constantemente y cuelgue el sitio web. Supongo que bc / no puede responder a otras consultas para iniciar sesión


sp_who2 ''active''

Compruebe los valores bajo CPUTime y DiskIO . Tenga en cuenta el SPID del proceso que tiene un gran valor comparativamente.

kill {SPID value}