Problem mit SQL-Statement

Huntley

Urgestein
Thread Starter
Mitglied seit
16.01.2007
Beiträge
2.600
Guten Morgen an alle

Ich habe für den Reorg einer DB einen bestimmten Parameter.
Es sollen alle Daten vor einem bestimmten Datum es der Tabelle geschmissen werden. Normalerweise geschieht das ja mit einem einfachem DELETE. Da die DB aber über 80 GB groß ist und das Transaktionsprotokoll dementsprechend auch sehr groß wird und meine Speicherkapazität nicht wirklich dafür ausreicht, muss irgendwie eine Schleife im Statement integriert werden die angibt das nach so und so vielen abgearbeiteten bzw. gelöschten Zeilen eine Leerung des Transaktionsprotokolls durchgeführt wird um diesen Speicherüberlauf zu vermeiden, ärgerlich ist dabei nämlich immer der Rollback der durchgeführt wird und alles gelöschte wieder in der Tabelle vorhanden ist.
Da ich nicht wirklich in SQL bewandert bin wäre ich über Vorschläge sehr dankbar.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
PHP:
LOOP
    BEGIN TRANSACTION
    DELETE .....
    COMMIT
END LOOP

sowas in der art ;)
 
mein beispiel dort ist fuer mysql
 
So ähnlich wie NASCAR schreibt durchführen. In einer Schleife zum Beispiel immer 100-Tage-weise löschen und dann immer "BACKUP LOG <database> WITH TRUNCATE_ONLY" und "DBCC SHRINKFILE <log_file>" ausführen !
 
Werde das mal testen.

Der Befehl:

BACKUP LOG <dbname> WITH NO_LOG

Brachte mir auch nicht wirklich Erfolg. Das Transaktionsprotokoll vergrößert
sich immer noch zu viel.

Edit: Der Befehl bringt den erhofften Erfolg.
 
Zuletzt bearbeitet:
Schau mal nach unter TRUNCATE TABLE.

Aber Vorsicht löscht alles in einer Tabelle ohne Trigger auszulösen.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh