2011-09-12 3 views
1

SQL Server 2005-08に関するトランザクションログに関するクエリがあります。トランザクションがトランザクションログに書き込まれるのはいつですか。ログファイルに書き込まれる前にデータファイルに書き込まれているか、データベースにコミットされる前にログファイルに書き込まれていますか。トランザクションログに関するコミットプロセスの理解

ありがとう

答えて

4

最初にログファイルに書き込まれます。この原則はWrite Ahead Loggingと呼ばれています。

データがログの前にデータファイルに書き込まれた場合、クラッシュから確実に回復する方法はありません。

4

Martinは、トランザクションをコミットするとすぐにログに記録します。ダーティ・ページ(つまり、変更されたデータ)は、checkpointプロセス中にデータファイルに非同期で書き込まれます。

トランザクションがパフォーマンスを大幅に向上させる原因でもあります。各反復で挿入ステートメントを単独で実行するタイトなループがある場合は、ログが書き込まれるたびに効果的にディスクにヒットします。ループの外でトランザクションをオープンすると、トランザクションは後でコミットされるため、ディスクは一度しかヒットしません。

+1

+1いくつか良い情報があります。 Dirty Pagesは、非同期I/Oとレイジーライターとチェックポイントプロセスを発行した作業者によって作成することもできます。 –

関連する問題