2009-06-08 5 views
7

私は通常、自分のストアドプロシージャ(BEGIN TRANSACTION .... COMMIT)で完全明示的トランザクションを使用します。私はちょうどコードの特定の場所で "CHECKPOINT"を代わりに使用する古いものを横断しました。CHECKPOINTはTSQLのCOMMITと同じ働きをしますか?

これは同じことをしません。データベースがシンプルモードであっても、チェックポイントの束が真ん中にあっても、全体が1つの大きなトランザクションとして実行されます。

答えて

7

CHECKPOINT /ロールバックをコミットするために異なるとは無関係です。

この記事では、「SQL Server 2000 I/O Basics」(SQL Server 2005などではまだOK)を示しています。

  • チェックポイントと、ディスクへの書き込みが、その後BEGIN/COMMIT

  • をロールバックすることができますは、復旧モデル(フル、シンプル、一括ログ記録)とは何の関係もありません。 TXNは1つとして完了するか失敗する必要があります。

  • 停電の場合、CHECKPOINTが原因でデータがディスク上にある可能性がありますが、コミットされていないため、データベースの起動時にロールバックされます。

シンプルリカバリモデルでは、これまでのところ、try and "empty" the log of committed entriesに使用されていました。 CHECKPOINTはそれらを捨てました。 FULLリカバリモデルの場合は、BACKUP LOGが必要です。

関連する問題