SQL Server 2005 以降にはファイルの瞬時初期化 (Instant File Initialization) という機能があります。
SQL Server のデータベースはデータファイルとログファイルの 2 種類に分かれます。
これらのファイルは作成 / 拡張されたタイミングでファイル内を [0] で満たすことで初期化が行われます。
ファイルの瞬時初期化はこの [0] で満たすという初期化処理をファイルの作成 / 拡張時ではなくデータが書き込まれる際に行うというものになります。
# (使用している領域のみが初期化されることになります。 ![]()
この瞬時初期化はデータファイル (.mdf / .ndf) ファイルが対象となり、ログファイル (.ldf) は対象になりません。
# ログファイルは必ず [0] を満たす初期化が行われます。
最終的にデータで使用する領域は初期化がおこわなれるのですが、その処理をどのタイミング (領域を確保したタイミング / 使用するタイミング) で行うかという違いがあります。
このファイルの瞬時初期化ですがリストア時にも有効な設定となります。
今回は、リストア時の瞬時初期化についてみていきたいと思います。
SQL Server におけるバックアップと復元のパフォーマンスの最適化