Was ist eine NDF-Datei?
Eine Datei mit der Erweiterung .ndf ist eine sekundäre Datenbankdatei, die von Microsoft SQL Server zum Speichern von Benutzerdaten verwendet wird. NDF ist eine sekundäre Speicherdatei, da der SQL-Server benutzerdefinierte Daten in einer primären Speicherdatei namens MDF speichert. Die NDF-Datendatei ist optional und benutzerdefiniert, um die Datenspeicherung zu verwalten, falls die primäre MDF-Datei den gesamten zugewiesenen Speicherplatz belegt. Es wird normalerweise auf einer separaten Festplatte gespeichert und kann sich auf mehrere Speichergeräte ausbreiten. Das Vorhandensein von MDF-Dateien ist erforderlich, um NDF-Dateien zu öffnen.
NDF-Dateiformat
Das NDF-Dateiformat unterscheidet sich nicht von MDF und verwendet Seiten als grundlegende Einheit der Datenspeicherung. Jede Seite beginnt mit einem 96-Byte-Header, der Folgendes enthält:
- Seiten-ID
- Art der Struktur
- Anzahl der Datensätze auf den Seiten
- Verweise auf vorherige und nächste Seiten
NDF-Dateistruktur
Eine MDF-Datei hat die folgende Datenstruktur.
- Seite 0: Kopfzeile
- Seite 1: Erstes PFS
- Seite 2: Erste GAM
- Seite 3: Erster SGAM
- Seite 4: Unbenutzt
- Seite 5: Unbenutzt
- Seite 6: Erstes DCM
- Seite 7: Erstes BCM
Kopfzeile der NDF-Datei
Die Seitennummer 0 aller Dateien enthält einen Header, der Metadaten über die Datei speichert.
Freier Speicherplatz auf Seite (PFS)
PFS identifiziert den Zuordnungsstatus und bestimmt die Menge an freiem Speicherplatz.
- Bit 1: Zeigt an, ob die Seite zugewiesen ist oder nicht.
- Bit 2: Gibt an, ob die Seite aus einem gemischten Extent stammt.
- Bit 3: Gibt an, dass diese Seite eine IAM-Seite ist.
- Bit 4: Zeigt an, dass diese Seite Geisteraufzeichnungen enthält
- Bits 5 bis 7: Ein kombinierter Drei-Bit-Wert, der die Seitenfülle wie folgt anzeigt:
- 0: Die Seite ist leer
- 1: Die Seite ist zu 1–50 % voll
- 2: Die Seite ist zu 51–80 % gefüllt
- 3: Die Seite ist zu 81–95 % gefüllt
- 4: Die Seite ist zu 96–100 % gefüllt
Datendateiseite
Seiten in einer SQL Server-Datendatei beginnen bei Null (0) und werden fortlaufend erhöht. Jede Datei wird durch eine eindeutige Datei-ID-Nummer erkannt. Das Paar aus Datei-ID und Seitenzahl identifiziert eine Seite in einer Datenbank eindeutig. Ein Beispiel, das Seitenzahlen in einer Datenbank zeigt, ist wie im folgenden Bild.
Dieses Beispiel zeigt Seitenzahlen in einer Datenbank mit einer primären Datendatei von 4 MB und einer sekundären Datendatei von 1 MB.