Die AusgabeWarum wird meine SQL Transaction-Protokolldatei nicht automatisch vergrößert?
Ich habe in einer Tabelle, die eine besonders große Abfrage ausgeführt wird, Erzeugen von Millionen von Datensätzen eingeführt werden. Jedes Mal, wenn ich die Abfrage ausführe, erhalte ich eine Fehlermeldung, dass die Transaktionsprotokolldatei voll ist.
Ich habe es geschafft, eine Testabfrage zu erhalten, die mit einer reduzierten Menge von Ergebnissen und mit SELECT INTO anstelle von INSERT in als vorgefertigte Tabelle ausgeführt wurde. Dieser reduzierte Satz von Ergebnissen erzeugte eine Tabelle mit 20 gb, 838.978.560 Zeilen.
Beim Versuch, in die vorbereitete Tabelle einfügen, habe ich es auch mit und ohne einen Cluster-Index versucht. Beide sind gescheitert.
Servereinstellungen
Der Server SQL Server 2005 (Full nicht Express) ausgeführt wird. Die verwendete dbase wird für die Wiederherstellung auf SIMPLE gesetzt, und auf dem Laufwerk, auf dem sich die Datei befindet, ist Speicherplatz (ca. 100 GB) verfügbar.
Die Einstellung der Transaktionsprotokolldatei gilt für Dateiwachstum von 250 MB und maximal 2.097.152 MB.
Die Protokolldatei scheint wie erwartet zu wachsen, bis sie 4729 MB erreicht.
Als das Problem zum ersten Mal auftrat, wuchs die Datei auf einen niedrigeren Wert, aber ich habe die Größe anderer Protokolldateien auf demselben Server verringert. Dadurch scheint diese Transaktionsprotokolldatei um den gleichen Betrag wie die Reduzierung weiter zu wachsen die anderen Dateien.
Ich habe jetzt keine Ideen mehr, wie man das löst. Wenn jemand einen Vorschlag oder Einblick in was zu tun hat, wäre es sehr geschätzt.
überprüfen Sie https://technet.microsoft.com/en-us/library/dd425070(v=sql.100).aspx. Es gibt Dinge, die Sie tun können, um SQL Server zu Masseneinfügung zu zwingen, die die Anzahl der T-Protokolleinträge verringern sollte. – Jeremy