Eu matei uma transação e agora ela permanece no status Killed/Rollback e sempre que executo Kill 64 com statusonly recebo esta saída:
SPID 64: reversão de transação em andamento. Conclusão estimada da reversão: 56%. Tempo restante estimado: 12860 segundos.
Porém fica em 56% e o tempo estimado só aumenta. Tem sido assim por pelo menos algumas horas.
A consulta que eu matei foi dbcc shrinkdatabase(new2012, 10)
Qual é o tamanho do seu banco de dados? Não é incomum que as transações de rollback demorem consideravelmente mais do que as operações que estão tentando fazer, especialmente se os objetos afetados tiverem dependências.
Outra questão importante é em qual ambiente você está executando isso? Presumo que você não esteja transmitindo ao vivo, o que leva a mais algumas perguntas, especificamente: -Quanto tempo você pode esperar por isso? -Você pode matar o banco de dados e restaurar um backup?
Se você não puder esperar por um período de tempo longo ou potencialmente desconhecido, sua melhor aposta pode ser simplesmente restaurar um backup. Se você não quiser fazer isso, talvez queira esperar um pouco mais. Você pode usar o
sys.dm_exec_requests
DMV para obter informações sobre tempos de espera e se está sendo bloqueado ou não, e sobre o que pode estar bloqueando.Depois de encontrar colunas que podem ser úteis, você pode revisar a instrução select para se livrar do spam.
Para obter mais informações, consulte esta postagem de Paul Randal (SQL MVP e autor) sobre o comando shrink: http://www.sqlskills.com/blogs/paul/why-lob-data-makes-shrink-run-slooooowly-t -sql-terça-006/