Il y a quatre jours, un utilisateur a exécuté la commande ci-dessous sur une table avec 400 000 000 rangées. Il est toujours en cours d'exécution et le fichier journal augmente de taille.
delete from [table-name]
Ce tableau a une contrainte de clé étrangère qui n'est pas activée pour la vérification et je sais qu'aucune rangée n'existe dans l'autre table.
La base de données est en cours d'exécution avec "IS LIRE SNAPSHOT ENGAGÉ sur" Activé et en mode de récupération simple.
Une fois que cela a eu lieu pendant quelques heures, j'ai émis une commande de session Kill, car nous manquions d'espace disque pour le fichier journal. J'ai ajouté un autre fichier journal pour permettre au système de continuer à fonctionner.
Le fichier journal continue de croître et lorsque je gère la session Kill avec StatonOnly, il renvoie ce message:
SPID 123: transaction rollback in progress. Estimated rollback completion: 0%. Estimated time remaining: 0 seconds.
Je suis à perte de ce qu'il faut faire à propos de cette requête pour la faire renverser et simplement comprendre ce qui se passe, peut-on suggérer ce que je peux regarder?
Donc, la suppression a couru pour seulement "quelques heures" avant de le tuer, et maintenant le "Rollback" est en cours d'exécution depuis 4 jours?
C'est bien au-delà du temps que je m'attendais normalement, alors voici ce que je recommanderais:
Si le redémarrage la corrige, vous êtes bon. Si ce n'est pas le cas, vous n'êtes pas pire, puis faites simplement une restauration à partir de la sauvegarde.
Bonne chance.