Estou usando o SQL server 2008 e seu estúdio de gerenciamento. Executei uma consulta que produz muitas linhas. Tentei cancelar com o botão vermelho de cancelamento, mas ele não parou nos últimos 10 minutos. Geralmente, para em 3 minutos.
Qual poderia ser o motivo e como faço para interromper imediatamente?
sql
sql-server
sql-server-2008
sequel.learner
fonte
fonte
Respostas:
Um cancelamento de consulta é imediato, desde que sua atenção possa chegar ao servidor e ser processada. Uma consulta deve estar em um estado cancelável, o que quase sempre é verdadeiro, exceto se você fizer certas operações, como chamar um serviço da web de SQLCLR. Se sua atenção não puder alcançar o servidor, geralmente é devido à sobrecarga do planejador .
Mas se sua consulta fizer parte de uma transação que deve ser revertida, a reversão não poderá ser interrompida. Se levar 10 minutos, serão necessários 10 minutos e não há nada que você possa fazer a respeito. Mesmo reiniciar o servidor não ajudará, apenas tornará a inicialização mais longa, pois a recuperação deve terminar a reversão.
Para responder qual motivo específico se aplica ao seu caso, você precisará investigar você mesmo.
fonte
Verifique os valores em CPUTime e DiskIO . Observe o SPID do processo com grande valor comparativamente.
fonte
Primeiro execute o comando abaixo:
Depois disso, execute o comando abaixo com SPID, que você obteve do comando acima:
fonte
Esta é uma resposta meio boba, mas funciona de forma confiável, pelo menos no meu caso: No management studio, quando o "Cancel Executing Query" não interrompe a consulta, eu apenas clico para fechar o documento sql atual. ele me pergunta se eu quero cancelar a consulta, eu digo que sim, e eis que em alguns segundos ele para de executar. Depois disso, ele me pergunta se eu quero salvar o documento antes de fechar. Nesse ponto, posso clicar em Cancelar para manter o documento aberto e continuar trabalhando. Não tenho ideia do que está acontecendo nos bastidores, mas parece funcionar.
fonte
Se você cancelar e ver aquela corrida
(O Activity Monitor não estará disponível no antigo sql server 2000 FYI)
Identifique o SPID que você deseja matar, por exemplo, 81
Execute o
sp_who2 'active'
novamente e você provavelmente notará que ele está dormindo ... rolando para trásPara obter o STATUS execute novamente o KILL
Então você receberá uma mensagem como esta
fonte
Você pode usar um atalho de teclado ALT+ Breakpara interromper a execução da consulta. No entanto, isso pode não funcionar em todos os casos.
fonte
fonte
aparentemente no sql server 2008 r2 64bit, com consulta de longa duração do IIS, o kill spid não parece funcionar, a consulta é reiniciada novamente e novamente. e parece estar reutilizando os spid's. a consulta está fazendo com que o sql server ocupe 35% da CPU constantemente e bloqueie o site. Estou supondo que bc / ele não pode responder a outras perguntas para fazer login
fonte
Na minha parte, meu sql desligou quando tentei fechá-lo enquanto corria sem parar. Então o que eu fiz foi abrir meu gerenciador de tarefas e finalizar minha consulta sql. Isso parou meu sql e reiniciou.
fonte
Uma resposta simples, se a caixa vermelha "parar" não estiver funcionando, é tentar pressionar os botões "Ctrl + Break" no teclado.
Se você estiver executando o SQL Server no Linux, existe um aplicativo que você pode adicionar à sua bandeja do sistema chamado "killall". Basta clicar no botão "killall" e, em seguida, clicar no programa que está travado em um loop e ele encerrará o programa. Espero que ajude.
fonte
Tenho sofrido da mesma coisa há muito tempo. Acontece especialmente quando você está conectado a um servidor remoto (que pode ser lento) ou você tem uma conexão de rede ruim. Duvido que a Microsoft saiba qual é a resposta certa.
Mas já tentei encontrar a solução. Apenas 1 abordagem leiga funcionou
"A consulta está em execução no momento. Quer cancelar a consulta?"
Clique em "Sim"
Depois de um tempo, ele perguntará se você deseja salvar esta consulta ou não?
Clique em "Cancelar"
E poste isso, pode ser que seu estúdio esteja estável novamente para executar sua consulta.
O que ele faz em segundo plano é desconectar sua janela de consulta da conexão. Portanto, para executar a consulta novamente, levará algum tempo para conectar o servidor remoto novamente. Mas acredite em mim, essa troca é muito melhor do que o sofrimento de ver aquele cronômetro que funciona para a eternidade.
PS: Isso funciona para mim, Kudos se funciona para você também. !!!
fonte