データベース スナップショットのスパース ファイルのサイズについて

データベース スナップショットでは、1 つ以上のスパース ファイルを使用してデータが格納されます。スパース ファイルは、データベース スナップショットの作成時に CREATE DATABASE ステートメント内のファイル名を使用して作成されます。これらのファイル名は、sys.master_filesphysical_name 列に格納されます。

注意

ソース データベース内とスナップショット内のいずれであっても、sys.database_filesphysical_name 列には、ソース データベース ファイルの名前が必ず格納されます。

スパース ファイルは、NTFS ファイル システムの機能です。初期状態のスパース ファイルにはユーザー データが含まれておらず、ユーザー データ用のディスク領域も割り当てられていません。データベース スナップショットでのスパース ファイルの使用方法と、データベース スナップショットがどのように大きくなるかについては、「データベース スナップショットの機能」を参照してください。

作成したばかりのスパース ファイルは、ディスク領域をほとんど使用しません。データがスパース ファイルに書き込まれるにつれて、NTFS によってディスク領域が徐々に割り当てられます。スパース ファイルは、非常に大きくなる可能性があります。領域不足になったデータベース スナップショットは、問題ありに設定して削除する必要があります。ただし、ソース データベースは影響を受けず、ソース データベースでの処理は通常どおりに続行されます。

スパース ファイルは 64 KB 単位で大きくなるので、ディスク上のスパース ファイルのサイズは常に 64 KB の倍数になります。最新の 64 KB の増加分には、ソース データベースからコピーされたページ数に応じて、8 KB のページが 1 ~ 8 ページ格納されます。つまり、概してスパース ファイルのサイズは、ページが実際に使用する領域よりもわずかに大きくなります。

  • スパース ファイルの実際のサイズを調べるには

    スナップショットの各スパース ファイルが現在ディスク上で使用しているバイト数を調べるには、sys.dm_io_virtual_file_stats 動的管理ビューの size_on_disk_bytes 列を使用します。

    または、スパース ファイルが使用するディスク領域を調べるには、Microsoft Windows でファイルを右クリックして [プロパティ] をクリックし、[ディスク上のサイズ] の値を確認します。

  • スパース ファイルの最大サイズを調べるには

    スパース ファイルの最大サイズは、スナップショット作成時点での対応するソース データベース ファイルのサイズです。このサイズを調べるには、次のいずれかを実行します。

    • Windows の dir コマンドを使用します。

    • スパース ファイルを選択し、ファイルの [プロパティ] ダイアログ ボックスを開き、[サイズ] の値を確認します。

    • データベース スナップショットの sys.database_files または sys.master_files から size 列を選択します。sys.database_files または sys.master_filessize 列には、スナップショットが使用できる最大領域 (SQL ページ数) が反映されます。この値は、Windows の [サイズ] フィールドに相当しますが、ファイル内の SQL ページ数で表されている点が異なります。バイト単位のサイズは次のように表されます。

      (number_of_pages * 8192)