فایل MDF چیست؟
یک فایل با پسوند mdf. یک فایل اصلی پایگاه داده است که توسط Microsoft SQL Server برای ذخیره دادههای کاربر استفاده میشود. از آنجایی که تمام داده ها در این فایل ذخیره می شوند، از اهمیت بالایی برخوردار است. فایل MDF داده های کاربران را در پایگاه داده های رابطه ای به شکل ستون ها، ردیف ها، فیلدها، فهرست ها، نماها و جداول ذخیره می کند. SQL Server اجازه می دهد تا تنظیمات autogrow و autoshrink را تنظیم کنید تا تأثیر مثبتی بر عملکرد پایگاه داده داشته باشد. فایل های MDF را می توان با استفاده از Microsoft SQL Server بارگذاری و به پایگاه داده متصل کرد. فایل های MDF دارای نوع Mime Application/Octet-stream هستند.
فرمت فایل ام دی اف
واحد اساسی ذخیره سازی داده ها در SQL Server یک صفحه است. یک صفحه ذخیره سازی اختصاص داده شده به پایگاه داده به صفحات منطقی با شماره گذاری از 0 تا n تقسیم می شود. یک صفحه منفرد با یک هدر 96 بایتی شروع می شود که شامل شناسه صفحه، نوع ساختاری که صفحه به آن تعلق دارد، تعداد رکوردهای موجود در صفحه و نشانگرهای صفحات قبلی و بعدی می باشد.
ساختار فایل
یک فایل MDF دارای ساختار داده زیر است.
- صفحه 0: سربرگ
- صفحه 1: اولین PFS
- صفحه 2: اولین GAM
- صفحه 3: اولین SGAM
- صفحه 4: استفاده نشده
- صفحه 5: استفاده نشده
- صفحه 6: DCM اول
- صفحه 7: BCM اول
سربرگ فایل
صفحه شماره 0 همه فایل ها حاوی یک هدر است که ابرداده مربوط به فایل را ذخیره می کند.
فضای آزاد صفحه (PFS)
PFS وضعیت تخصیص را مشخص می کند و مقدار فضای آزاد را تعیین می کند.
- بیت 1: نشان می دهد که آیا صفحه تخصیص داده شده است یا خیر.
- بیت 2: نشان می دهد که آیا صفحه از وسعت مختلط است یا خیر.
- بیت 3: نشان می دهد که این صفحه یک صفحه IAM است.
- بیت 4: نشان می دهد که این صفحه حاوی رکوردهای شبح است
- بیت های 5 تا 7: یک مقدار ترکیبی سه بیتی که پر بودن صفحه را به صورت زیر نشان می دهد:
- 0: صفحه خالی است
- 1: صفحه 1 تا 50 درصد پر است
- 2: صفحه 51 تا 80 درصد پر است
- 3: صفحه 81 تا 95 درصد پر است
- 4: صفحه 96 تا 100 درصد پر است
منابع
- فایلهای پایگاه داده و گروههای فایل
- [Database Detach and Attach - SQL Server](https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-detach-and-attach-sql-server?view=sql-server- نسخه 15)
- Analysing SQL Server Data File Anatomy