.NDF вариант №
Файл с расширением .ndf — это дополнительный файл базы данных, используемый Microsoft SQL Server для хранения пользовательских данных. NDF является файлом вторичного хранилища, поскольку SQL-сервер хранит указанные пользователем данные в файле первичного хранилища, известном как MDF. Файл данных NDF является необязательным и определяется пользователем для управления хранилищем данных в случае, если основной файл MDF использует все выделенное пространство. Обычно он хранится на отдельном диске и может распространяться на несколько устройств хранения. Наличие файлов MDF необходимо для открытия файлов NDF.
Формат файла NDF
Формат файла NDF ничем не отличается от MDF и использует страницы в качестве основной единицы хранения данных. каждая страница начинается с 96-байтового заголовка, который включает:
- Идентификатор страницы
- Тип структуры
- Количество записей на страницах
- Указатели на предыдущую и следующую страницы
Структура файла NDF
Файл MDF имеет следующую структуру данных.
- Страница 0: Заголовок
- Страница 1: Первый PFS
- Страница 2: Первая игра
- Страница 3: Первый SGAM
- Страница 4: Не используется
- Страница 5: Не используется
- Страница 6: Первый DCM
- Страница 7: Первый BCM
Заголовок файла NDF
Страница номер 0 всех файлов содержит заголовок, в котором хранятся метаданные о файле.
Свободное пространство страницы (PFS)
PFS определяет состояние распределения и количество свободного места.
- Бит 1: Указывает, выделена страница или нет.
- Бит 2: указывает, находится ли страница в смешанном экстенте.
- Бит 3: указывает, что эта страница является страницей IAM.
- Бит 4: указывает, что эта страница содержит фантомные записи.
- Биты с 5 по 7: комбинированное трехбитовое значение, которое указывает на заполнение страницы следующим образом:
- 0: страница пуста
- 1: Страница заполнена на 1–50 %.
- 2: Страница заполнена на 51–80 %.
- 3: страница заполнена на 81–95 %.
- 4: Страница заполнена на 96–100 %.
Страница файла данных
Страницы в файле данных SQL Server начинаются с нуля (0) и последовательно увеличиваются. Каждый файл распознается по уникальному идентификационному номеру файла. Пара ID файла и номера страницы однозначно идентифицирует страницу в базе данных. Пример, показывающий номера страниц в базе данных, показан на следующем рисунке.
В этом примере показаны номера страниц в базе данных с первичным файлом данных размером 4 МБ и вторичным файлом данных размером 1 МБ.