Estoy usando SQL Server 2008 y su estudio de administración. Ejecuté una consulta que arroja muchas filas. Intenté cancelarlo mediante el botón rojo de cancelación, pero no se detuvo durante los últimos 10 minutos. Por lo general, se detiene en 3 minutos.
¿Cuál podría ser la razón y cómo lo detengo de inmediato?
sql
sql-server
sql-server-2008
aprendiz de secuela
fuente
fuente
Respuestas:
La cancelación de una consulta es inmediata, siempre que su atención pueda llegar al servidor y ser procesada. Una consulta debe estar en un estado cancelable, que casi siempre es cierto, 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 programador .
Pero si su consulta es parte de una transacción que debe revertirse, la reversión no se puede interrumpir. Si toma 10 minutos, entonces 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 qué motivo específico se aplica a su caso, deberá investigarlo usted mismo.
fuente
Compruebe los valores en CPUTime y DiskIO . Tenga en cuenta que el SPID del proceso tiene un gran valor comparativamente.
fuente
Primero ejecute el siguiente comando:
Después de eso, ejecute el siguiente comando con SPID, que obtuvo del comando anterior:
fuente
Esta es una respuesta algo tonta, pero funciona de manera confiable al menos en mi caso: en Management Studio, cuando "Cancelar la ejecución de la 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 cerrarlo. En este punto, puedo hacer clic en Cancelar para mantener el documento abierto y seguir trabajando. No tengo idea de lo que sucede detrás de escena, pero parece funcionar.
fuente
Si cancelas y ves que se ejecuta
(Activity Monitor no estará disponible en el antiguo SQL Server 2000 FYI)
Encuentra el SPID que deseas matar, por ejemplo, 81
Ejecute de
sp_who2 'active'
nuevo y probablemente notará que está durmiendo ... retrocediendoPara que el STATUS vuelva a ejecutar el KILL
Entonces recibirás un mensaje como este
fuente
Puede usar un atajo de teclado ALT+ Breakpara detener la ejecución de la consulta. Sin embargo, esto puede no funcionar en todos los casos.
fuente
fuente
aparentemente en sql server 2008 r2 64bit, con una consulta de larga ejecución desde IIS, el kill spid no parece funcionar, la consulta simplemente se reinicia una y otra vez. y parece estar reutilizando el spid. la consulta hace que el servidor sql tome como un 35% de la CPU constantemente y cuelgue el sitio web. Supongo que bc / no puede responder a otras consultas para iniciar sesión
fuente
En mi parte, mi sql colgó cuando intenté cerrarlo mientras lo ejecutaba sin cesar. Entonces, lo que hice fue abrir mi administrador de tareas y finalizar la tarea de mi consulta SQL. Esto detiene mi sql y lo reinicia.
fuente
Una respuesta simple, si el cuadro rojo "detener" no funciona, es intentar presionar los botones "Ctrl + Pausa" en el teclado.
Si está ejecutando SQL Server en Linux, hay una aplicación que puede agregar a su bandeja del sistema 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.
fuente
He estado sufriendo lo mismo desde hace mucho tiempo. Ocurre especialmente cuando está conectado a un servidor remoto (que puede ser lento) o tiene una conexión de red deficiente. Dudo que Microsoft sepa cuál es la respuesta correcta.
Pero desde que intenté encontrar la solución. Solo 1 enfoque de laico funcionó
"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 su ventana de consulta con la conexión. Por lo tanto, para volver a ejecutar la consulta, se necesitará tiempo para volver a conectar el servidor remoto. Pero créame, esta compensación es mucho mejor que el sufrimiento de ver ese temporizador que funciona por la eternidad.
PD: Esto funciona para mí, Felicitaciones si también funciona para ti. !!!
fuente