Wir haben eine Transaktion, die seit mehr als 5 Stunden läuft. Wir haben nicht mehr genügend Speicherplatz. Die Sitzung wurde beendet, wartet jedoch noch auf IO_COMPLETION. Eigentlich hat sich der wait_type gerade in PAGEIOLATCH_EX geändert. Wie kann ich die angehaltene SQL Server-Transaktion beenden? Ich mache mir keine Sorgen über den Verlust von Daten, da alle Daten neu gefüllt werden können.
session_id: 54
STATUS: suspended
blocked by: 0
wait_type: PAGEIOLATCH_EX
Elapsed Time (in Sec): 19750.420000
open_transaction_count: 2
sql-server-2012
transaction
kill
Tarzan
quelle
quelle
KILL 54 WITH STATUSONLY
herausfinden, wie lange das Rollback dauern wird.KILL .. WITH STATUSONLY
ist nicht genau und ich verstehe Ihren Standpunkt. Kannst du es versuchenAlter database .. set OFFLINE or single_User WITH ROLLBACK IMMEDIATE
?Antworten:
Führen Sie dies das nächste Mal aus
sp_WhoIsActive
( Download | Dokumentation ) und sehen Sie, wer was ausführt, und überprüfen Sie die Logik. Überprüfen Sie, ob die TSQL für eine schnellere Ausführung optimiert werden kann, oder zerlegen Sie sie möglicherweise in kleinere Transaktionen.Ich hatte Fälle, in denen das Transaktionsprotokoll einer fehlerhaften Abfrage durch einen Berichtersteller, Datenlader usw. das Transaktionsprotokoll größer als die Datendateigröße vergrößerte, und es ist normalerweise eine schlecht geschriebene Abfrage mit schlechter Leistung, die nicht optimiert oder aufgeteilt wurde Bei kleineren Transaktionen muss nach Abschluss der Transaktion freier Speicherplatz zurückgegeben werden. Dies war
SIMPLE
übrigens auch in einer Wiederherstellungsmodelldatenbank der Fall. BeiFULL
Wiederherstellungsmodelldatenbanken müssten Transaktionsprotokollsicherungen abgeschlossen werden, damit der Transaktionsprotokollspeicherplatz festgeschriebener Transaktionen wiederverwendet werden kann.Das Hauptproblem ist wahrscheinlich die Abfrage. Wenn Sie also feststellen, wer was tut, sich an sie wenden und das Problem mit Ihren Ergebnissen melden, wird der Druck auf sie ausgeübt, ihre Logik zu korrigieren, um den Server-Speicherplatz für diese Festplattenpartition nicht zu belasten - hoffentlich ist dies der Fall Nicht Ihre Logik, aber wenn ja, versuchen Sie, die Logik zu optimieren, um die Leistung abzufragen.
quelle