Поделиться через


Разреженные файлы

Файл, в котором большая часть данных равна нулю, как сообщается, содержит разреженный набор данных. Такие файлы обычно очень большие, например, файл, содержащий данные изображения для обработки или матрицы в высокоскоростной базе данных. Проблема с файлами, содержащими разреженные наборы данных, заключается в том, что большинство файлов не содержит полезных данных, и из-за этого они являются неэффективным использованием места на диске.

Сжатие файлов в файловой системе NTFS является частичным решением проблемы. Все данные в файле, который не записан явно, явно задано равным нулю. Сжатие файлов сжимает эти диапазоны от нуля. Однако недостаток сжатия файлов заключается в том, что время доступа может увеличиться из-за сжатия данных и декомпрессии.

Поддержка разреженных файлов представлена в файловой системе NTFS в качестве другого способа повышения эффективности использования места на диске. Если включена разреженная функциональность файлов, система не выделяет место на жестком диске для файла, за исключением регионов, в которых она содержит ненулевое значение. При попытке операции записи, в которой большое количество данных в буфере равно нулю, нули не записываются в файл. Вместо этого файловая система создает внутренний список, содержащий расположения нулей в файле, и этот список выполняется во время всех операций чтения. Когда операция чтения выполняется в областях файла, где находились нули, файловая система возвращает соответствующее количество нулей в буфере, выделенном для операции чтения. Таким образом, обслуживание разреженного файла прозрачно для всех процессов, к которым он обращается, и более эффективно, чем сжатие для этого конкретного сценария.

Значение данных по умолчанию разреженного файла равно нулю; однако его можно задать для других значений.

Дополнительные сведения о разреженных файлах см. в следующих разделах.

В этом разделе

Тема Описание
разреженных операций с файлами
Определите, поддерживает ли файловая система разреженные файлы, вызвав функцию GetVolumeInformation.
получение размера разреженного файла
Получите выделенный размер или общий размер файла с помощью функции GetCompressedFileSize или GetFileSize.
разреженные файлы и квоты дисков
Разреженный файл влияет на квоты пользователей по номинальному размеру файла, а не фактическому выделенному объему места на диске.