Hvad er NDF fil?
En fil med filtypenavnet .ndf er en sekundær databasefil, der bruges af Microsoft SQL Server til at gemme brugerdata. NDF er en sekundær lagerfil, fordi SQL-serveren gemmer brugerspecificerede data i den primære lagerfil kendt som MDF. NDF-datafil er valgfri og er brugerdefineret til at administrere datalagring, hvis den primære MDF-fil bruger al den tildelte plads. Det er normalt gemt på separat disk og kan spredes til flere lagerenheder. Tilstedeværelsen af MDF-filer er nødvendig for at åbne NDF-filer.
NDF filformat
NDF-filformatet er ikke anderledes end MDF og bruger sider som den grundlæggende enhed for datalagring. hver side starter med 96 bytes overskrift, der inkluderer:
- Side-id
- Type af struktur
- Antal poster på siderne
- Henvisninger til forrige og næste sider
NDF-filstruktur
En MDF-fil har følgende datastruktur.
- Side 0: Overskrift
- Side 1: Første PFS
- Side 2: Første GAM
- Side 3: Første SGAM
- Side 4: Ubrugt
- Side 5: Ubrugt
- Side 6: Første DCM
- Side 7: Første BCM
NDF-filoverskrift
Sidenummer 0 i alle filerne indeholder en header, der gemmer metadata om filen.
Side ledig plads (PFS)
PFS identificerer allokeringsstatus og bestemmer mængden af ledig plads.
- Bit 1: Angiver om siden er allokeret eller ej.
- Bit 2: Angiver om siden er fra en blandet udstrækning.
- Bit 3: Indikerer, at denne side er en IAM-side.
- Bit 4: Indikerer, at denne side indeholder spøgelsesposter
- Bit 5 til 7: En kombineret tre-bit værdi, som angiver sidefylden som følger:
- 0: Siden er tom
- 1: Siden er 1–50 % fuld
- 2: Siden er 51–80 % fuld
- 3: Siden er 81–95 % fuld
- 4: Siden er 96–100 % fuld
Datafilside
Sider i en SQL Server-datafil starter fra nul (0) og stiger sekventielt. Hver fil genkendes af et unikt fil-id-nummer. Fil-id’et og sidenummerparret identificerer entydigt en side i en database. Et eksempel, der viser sidetal i en database, er som i følgende billede.
Dette eksempel viser sidetal i en database, der har en 4 MB primær datafil og 1 MB sekundær datafil.
Referencer
- Databasefiler og filgrupper
- [Database Atach and Attach - SQL Server](https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-detach-and-attach-sql-server?view=sql-server- version 15)
- Analyse af SQL Server Data File Anatomy