スパース ファイル
データの多くがゼロであるファイルには、スパース データ セット含まれていると言われます。 このようなファイルは、通常、処理する画像データを含むファイルや高速データベース内のマトリックスなど、非常に大きくなります。 スパース データ セットを含むファイルの問題は、ファイルの大部分に有用なデータが含まれていないため、ディスク領域が非効率的に使用されていることです。
NTFS ファイル システムでのファイル圧縮は、問題の部分的な解決策です。 明示的に書き込まれていないファイル内のすべてのデータは、明示的に 0 に設定されます。 ファイル圧縮では、これらの範囲のゼロが圧縮されます。 ただし、ファイル圧縮の欠点は、データの圧縮と圧縮解除によってアクセス時間が長くなる可能性があるということです。
スパース ファイルのサポートは、ディスク領域の使用効率を高める別の方法として NTFS ファイル システムで導入されています。 スパース ファイル機能が有効になっている場合、システムは、0 以外のデータが含まれているリージョンを除き、ハード ディスク ドライブ領域をファイルに割り当てません。 バッファー内の大量のデータがゼロである書き込み操作が試行された場合、ゼロはファイルに書き込まれません。 代わりに、ファイル システムは、ファイル内のゼロの場所を含む内部リストを作成し、このリストはすべての読み取り操作中に参照されます。 0 が配置されたファイルの領域で読み取り操作が実行されると、ファイル システムは読み取り操作に割り当てられたバッファー内の適切な数のゼロを返します。 この方法では、スパース ファイルのメンテナンスは、スパース ファイルにアクセスするすべてのプロセスに対して透過的であり、この特定のシナリオでは圧縮よりも効率的です。
スパース ファイルの既定のデータ値は 0 です。ただし、他の値に設定できます。
スパース ファイルの詳細については、次のトピックを参照してください。
このセクションでは、次の操作を行います。
話題 | 形容 |
---|---|
スパース ファイル操作 の |
GetVolumeInformation 関数を呼び出して、ファイル システムがスパース ファイルをサポートしているかどうかを判断します。 |
スパース ファイル のサイズを取得する |
GetCompressedFileSize または GetFileSize 関数を使用して、ファイルに割り当てられたサイズまたは合計サイズを取得します。 |
スパース ファイルとディスク クォータの を する |
スパース ファイルは、ディスク領域の実際の割り当て量ではなく、ファイルの標準サイズによってユーザー クォータに影響します。 |