2009-06-08 4 views
7

Ich verwende normalerweise vollständig explizite Transaktionen in meinen gespeicherten Procs (BEGIN TRANSACTION .... COMMIT). Ich bin gerade auf eine alte Maschine gestoßen, die an bestimmten Stellen im Code "CHECKPOINT" verwendet.Funktioniert CHECKPOINT in TSQL wie COMMIT?

Dies wird nicht das gleiche tun, richtig ?? Selbst wenn sich die Datenbank im einfachen Modus befindet, wird das Ganze immer noch als eine große Transaktion ausgeführt, selbst wenn ein Haufen CHECKPOINTS in der Mitte stecken bleibt?

Antwort

7

No.

CHECKPOINT ist unterschiedlich und unabhängig/Rollback zu begehen.

Dieser Artikel demonstriert "SQL Server 2000 I/O Basics" (immer noch Ok für SQL Server 2005 usw.).

  • Sie können auf der Festplatte Checkpoint und schreiben, aber anschließend ein Rollback

  • Die BEGIN/COMMIT nichts zu tun (angemeldet voll, einfach, bulk) mit Wiederherstellungsmodell. Die TXN muss entweder abgeschlossen oder als eine fehlgeschlagen sein.

  • Im Falle von, sagen wir, Stromausfall, die Daten möglicherweise auf der Festplatte wegen eines CHECKPOINT aber nicht festgeschrieben, so wird als Teil der Datenbank-Start zurückgesetzt.

In früheren Zeiten wurde es auf try and "empty" the log of committed entries für das einfache Wiederherstellungsmodell verwendet. CHECKPOINT hat sie verworfen. Für das vollständige Wiederherstellungsmodell benötigen Sie BACKUP LOG.