Antes do SQL Server 2008, não conheço nenhuma solução possível. Desde o SQL Server 2008, há o Administrador de Recursos , que permite especificar a carga de trabalho e os recursos usados. Eu ainda não usei, então não posso contar mais detalhes.
Eu tenho um trabalho que geralmente é executado por cerca de duas horas. Esta manhã ainda estava correndo às 5 horas e eu decidi matá-lo. Ele está em um status "KILLED / ROLLBACK" há algum tempo. Quando executo o comando KILL novamente para obter o status da reversão, recebo o seguinte:
SPID 84: reversão de transação em andamento. Conclusão de reversão estimada: 0%. Tempo estimado restante: 0 segundos.
Existe alguma maneira que eu possa aumentar a prioridade ou dizer ao SQL Server para "apressar"? :)
Atualização:
Ou há uma maneira de eu dizer "eu não me importo com o estado da mesa. Apenas saia".
Antes do SQL Server 2008, não conheço nenhuma solução possível. Desde o SQL Server 2008, há o Administrador de Recursos , que permite especificar a carga de trabalho e os recursos usados. Eu ainda não usei, então não posso contar mais detalhes.
Nada disso.
Uma opção é parar o SQL Server, mover os arquivos MDF e LDF, iniciar o SQL Server, excluir o banco de dados suspeito, reconectar o arquivo MDF e esperar que seu banco de dados ainda funcione.
Ou restaure-o.
Não estou brincando: o ACID força a reversão e não permite uma tabela corrompida sem intervenção externa.
Há uma chance de que ele possa ser bloqueado por outro motivo, mas geralmente está revertendo uma transação. Uma reinicialização do SQL Server poderia ajudar neste caso, mas não vem chorar se der errado: -)
Se esta for a produção, aguarde ou exclua / restaure. Você não pode dizer "eu não me importo com o estado da mesa. Apenas saia". na produção ...