Ich untersuchte das schnelle Wachstum eines SQL Server 2005-Transaktionsprotokolls, wenn ich feststellte, dass Transaktionsprotokolle nur korrekt abgeschnitten werden - wenn die Spalte "log_reuse_wait" der sys.databases auf 0 gesetzt ist Nichts hält das Transaktionsprotokoll davon ab, vorhandenen Speicherplatz wiederzuverwenden.SQL Server sys.databases log_reuse_wait Frage
Eines Tages, als ich eine Protokolldatei sichern/abschneiden wollte, fand ich, dass diese Spalte eine 4 oder ACTIVE_TRANSACTION in der Tempdb hatte. Ich überprüft dann auf alle offenen Transaktionen, die DBCC OPENTRAN ('tempdb') und die open_tran-Spalte von Sysprocesses verwenden. Das Ergebnis war, dass ich nirgendwo im System aktive Transaktionen finden konnte.
Sind die Einstellungen in der Spalte log_reuse_wait korrekt? Gibt es Transaktionen, die mit den oben beschriebenen Methoden nicht nachweisbar sind? Fehle ich gerade etwas Offensichtliches?
Möglicherweise, aber nach einer Stunde oder so ging die ACTIVE_TRANSACTION weg und ging zurück 0 (NOTHING). Wenn Ihr Vorschlag wahr wäre, würde sich jedes Mal, wenn ich sys.databases abfrage, die tempdb (oder master) immer in einem ACTIVE_TRANSACTION-Modus befinden. – Clinemi