Основные сведения о размере разреженных файлов в моментальных снимках базы данных

Моментальный снимок базы данных использует один или несколько разреженных файлов для хранения данных. При создании моментального снимка базы данных разреженные файлы создаются с помощью имен файлов, указанных в инструкции CREATE DATABASE. Эти имена файлов хранятся в таблице sys.master_files в столбце physical_name.

ПримечаниеПримечание

В таблице sys.database_files (в базе данных-источнике или в моментальном снимке) столбец physical_name всегда содержит имена файлов базы данных-источника.

Разреженные файлы являются свойством файловой системы NTFS. Изначально разреженный файл не содержит данных пользователя, и место на диске под него не выделяется. Общие сведения об использовании разреженных файлов в моментальных снимках базы данных и о том, как растут моментальные снимки базы данных, см. в разделе Как работают моментальные снимки базы данных.

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

Разреженные файлы каждый раз увеличиваются в размере на 64 килобайта (КБ); таким образом, размер разреженного файла на диске всегда кратен 64 КБ. Последнее увеличение на 64 КБ содержит от одной до восьми страниц размером 8 КБ в зависимости от того, как много страниц было скопировано из базы данных-источника. Это значит, что в среднем размер разреженного файла может немного превышать место, на самом деле заполненное страницами.

  • Как узнать реальный размер разреженного файла

    Чтобы узнать число байтов, занятых на диске каждым разреженным файлом моментального снимка, можно использовать столбец size_on_disk_bytes динамического административного представления sys.dm_io_virtual_file_stats.

    Кроме того, чтобы увидеть место на диске, занимаемое разреженным файлом, можно щелкнуть правой кнопкой мыши файл в Microsoft Windows, выбрать пункт Свойства и просмотреть значение Место на диске.

  • Как узнать максимальный размер разреженного файла

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

    • Использовать команды Windows dir.

    • Выбрать разреженный файл, открыть диалоговое окно Свойства в Windows и просмотреть значение Размер.

    • Выбрать столбец size из таблицы sys.database_files в моментальном снимке базы данных или из таблицы sys.master_files. Столбец size в таблице sys.database_files или таблице sys.master_files отражает максимальное пространство в страницах SQL, которое может быть использовано моментальным снимком; это значение эквивалентно полю Windows Размер, кроме того, что оно представлено в количестве страниц SQL в файле. Размер в байтах равен:

      ( число_страниц * 8192)

Журнал изменений

Обновления

В разделе «Как узнать реальный размер разреженного файла» функция fn_virtualfilestats заменена на представление sys.dm_io_virtual_file_stats.