Primeiro, verifique o log de erros do SQL para ver se ele realmente atingiu o tamanho máximo do log. Caso isso aconteça, a consulta não tem nenhuma esperança de concluir, provavelmente já está em um estado de reversão.
Mesmo que seja, eu sempre prefiro matar o spid manualmente (use sp_who2
ou sp_WhoIsActive
para encontrar o spid, faça um kill 59
ou o que for). Você também não pode verificar o status de reversão, a menos que faça um KILL explícito, consulte este tópico relacionado .
Como se trata de uma exclusão e não de uma atualização ou inserção, você pode ter muita sorte e descobrir que ela reverte imediatamente. Caso contrário, pode demorar tanto (ou mais) para retroceder quanto para chegar a esse ponto.
Para ver o status da reversão, use
kill 59 with statusonly
Infelizmente, descobri que isso frequentemente não mostra nada de útil, apenas um "0% concluído". Nesse caso, você precisará usar sp_who2
e assistir o IO e a CPU para ver se ainda está fazendo alguma coisa.
Em relação à reinicialização, esse é um risco grave. Se o spid estiver revertendo ativamente (CPU e IO estão mudando), a reinicialização do SQL deixará o banco de dados offline apenas até que a reversão esteja completamente concluída (horas e horas). Mas , se a CPU e o IO não estiverem se movendo, é possível limpá-lo imediatamente. De qualquer maneira, é um risco.
Uma opção final, se as coisas forem especialmente ruins: se você tiver um backup imediatamente antes do início da exclusão (e não houve outras atualizações no banco de dados) , a maneira mais rápida de recuperar pode ser simplesmente descartar o banco de dados, reiniciar SQL e restauração do backup.
Se você não conseguir eliminar o banco de dados (ou se você já reiniciou a instância e o sql errorlog está prevendo um tempo de recuperação de 24 horas), encerre os serviços SQL, exclua os arquivos MDF e LDF do disco, inicie o SQL, solte o banco de dados (fantasma) e restaure a partir do backup.
Obviamente, você só tentaria se esse fosse um banco de dados de processamento de back-end com o qual os usuários não interagissem.