私は通常、自分のストアドプロシージャ(BEGIN TRANSACTION .... COMMIT)で完全明示的トランザクションを使用します。私はちょうどコードの特定の場所で "CHECKPOINT"を代わりに使用する古いものを横断しました。CHECKPOINTはTSQLのCOMMITと同じ働きをしますか?
これは同じことをしません。データベースがシンプルモードであっても、チェックポイントの束が真ん中にあっても、全体が1つの大きなトランザクションとして実行されます。
私は通常、自分のストアドプロシージャ(BEGIN TRANSACTION .... COMMIT)で完全明示的トランザクションを使用します。私はちょうどコードの特定の場所で "CHECKPOINT"を代わりに使用する古いものを横断しました。CHECKPOINTはTSQLのCOMMITと同じ働きをしますか?
これは同じことをしません。データベースがシンプルモードであっても、チェックポイントの束が真ん中にあっても、全体が1つの大きなトランザクションとして実行されます。
チェックポイントは、ダーティページをディスクに書き込むだけであり、全く同じことではありません。
http://msdn.microsoft.com/en-us/library/ms188748.aspx号
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が必要です。
これは私が考えたものです。今すぐコードを変更する作業... – BradC