1

私の一般的な質問は、サイズが20GのSQL Server 2005データベースと、空のログファイルがあるとします。各テーブルと各行に1回だけ触れる一連の更新を実行すると、ログファイルはデータベースと同じサイズになりますか?それとも、これは他の要因に依存しますか?

私が実行しているデータベースの更新のために、この質問をしています。私はいくつかのプロプライエタリソフトウェアによって使用されるデータベースを持っています。すべてのテーブルとすべてのフィールドが更新されます。ソフトウェアには詳細な出力はなく、「未完了」/「完了」のチェックボックスのみがあります。説明的な出力がないので、私はそれが終わりに近いかどうかを見分ける方法を理解しようとしています。

それで、すべてが触れられたとき、ログファイルはデータベースと同じサイズになる可能性がありますか?または、ログファイルには、このようにデータベースのサイズに依存しないさまざまな情報が含まれていますか?

4

2 に答える 2

5

経験則として、更新に対して生成されるログのサイズは、更新のサイズの約1.5倍です。したがって、20Gb相当のデータを更新すると、30Gb相当のログが生成されます。

ただし、考慮すべき点がいくつかあります。

  1. 生成されるログのサイズは、必ずしもログファイルのサイズに変換される必要はありません。SIMPLEリカバリモデルでは、トランザクションがコミットされるとすぐに使用されるログファイルを自動的にリサイクルできるため(簡潔にするために詳細は省略します)、使用済みログを継続的にリサイクルすることで、30GBのログサイズを1GBのファイルに収めることができます。FULLおよびBULKリカバリモデルでは、データベースログのバックアップが実行されると、ログは同様にリサイクルされます。したがって、1つのトランザクションですべてを更新しない場合、ログはリサイクルされ、大きくならないはずです。

  2. 一部の操作は最小限にログに記録できます。TRUNCATE、INSERTBULKが典型的な例です。最小限のロギングは、通常のロギングのごく一部を占めます。

今のところ、使用されたログの割合( )を確認し、ログの増加イベントが発生しているDBCC SQLPERF(logspace)かどうかを監視する必要があります。

于 2011-02-18T21:30:49.377 に答える
0

あなたが探している答えではありませんが、データベースのサイズに意味のある形で関係する可能性は低いと思います。ちょっと待ってください。:)

于 2011-02-18T21:32:04.930 に答える