Що таке файл NDF?
Файл із розширенням .ndf – це додатковий файл бази даних, який використовується Microsoft SQL Server для зберігання даних користувача. NDF є вторинним файлом зберігання, оскільки SQL-сервер зберігає вказані користувачем дані в основному файлі зберігання, відомому як MDF. Файл даних NDF є необов’язковим і визначається користувачем для керування збереженням даних, якщо основний файл MDF використовує весь виділений простір. Зазвичай він зберігається на окремому диску і може поширюватися на кілька пристроїв зберігання даних. Наявність файлів MDF необхідна для відкриття файлів NDF.
Формат файлу NDF
Формат файлу NDF нічим не відрізняється від MDF і використовує сторінки як основну одиницю зберігання даних. кожна сторінка починається з 96-байтового заголовка, який включає:
- Ідентифікатор сторінки
- Тип структури
- Кількість записів на сторінках
- Покажчики на попередню та наступну сторінки
Структура файлу NDF
Файл MDF має таку структуру даних.
- Сторінка 0: Заголовок
- Сторінка 1: Перший PFS
- Сторінка 2: Перший GAM
- Сторінка 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) і послідовно збільшуються. Кожен файл розпізнається за унікальним ідентифікаційним номером файлу. Ідентифікатор файлу та пара номерів сторінок унікально ідентифікують сторінку в базі даних. Приклад, що показує номери сторінок у базі даних, як на наступному зображенні.
У цьому прикладі показано номери сторінок у базі даних, яка має основний файл даних розміром 4 МБ і вторинний файл даних розміром 1 МБ.