Fragmentation چیست؟
آموزش پیشرفته SQL Server (جلسه پنجم) - Fragmentation
Fragmentation، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی Fragmentation، قسمت های قبلی را مرور فرمایید.
Fragmentation چیست؟
Fragmentation بمعنی از هم گسیخته شدن یا متلاشی شدن است.
در مثال زیر، نحوه ی قرار گیری داده های A و B و C قبل از اینکه Fragmentation اتفاق بیافتد را مشاهده می کنید:
A | B | C | فضای خالی |
فرض کنید بخواهیم به A مقداری اضافه کنیم، اتفاقی که خواهد افتاد از قسمت "فضای خالی" مطابق شکل زیر به آن اختصاص خواهد داد و این باعث بروز مشکل Fragmentation یا از هم گسیختگی داده ها خواهد شد:
A | B | C | A | فضای خالی |
برای رفع مشکل Fragmentation باید مقدار A دوم در کنار اولی قرار بگیرد:
A | A | B | C | فضای خالی |
توجه: حالت بهینه ذخیره شدن داده ها بنحوی است که آدرس فیزیکی و منطقی آنها یکسان باشد. همان طور که می دانید داده ها در SQL Server در مفهومی بنام Page ذخیره می شوند، هر Page به صفحه ی "قبلی" و "بعدی" خودش اشاره می کند. بنابراین اگر صفحه ی قبلی و بعدی Page جاری دقیقاً Pageهای کناری خودش باشد، بهترین حالت ممکن اتفاق افتاده است و مشکل Fragmentation وجود نخواهد داشت.
انواع Fragmentation
- Fragmentation یا بهم ریختگی Internal یا Logical
- Fragmentation یا بهم ریختگی Extent یا External
- Fragmentation یا بهم ریختگی در سطح فایل (File Level)
در ادامه به توضیح هر کدام از موارد بالا خواهیم پرداخت.
1- Fragmentation یا بهم ریختگی Internal یا Logical
Fragmentation یا بهم ریختگی Internal در اثر وجود فضاهای غیرقابل استفاده در یک Page ایجاد می شود. لطفاً به مثال زیر توجه نمایید:
پهلوان | امیر | 100 |
فضای غیر قابل استفاده |
||
احمدی | مریم | 102 |
پهلوان | امیر | 100 |
طاهری | مهدی | 101 |
فضای غیر قابل استفاده |
------
فضای غیر قابل استفاده |
||
پهلوان | نرگس | 104 |
طاهری | مهدی | 105 |
2- Fragmentation یا بهم ریختگی Extent یا External
در این نوع Fragmentation، ترتیب منطقی صفحات با ترتیب فیزکیشان یکسان نیست.
همان طور که قبلا توضیح داده شد، هر 8 پیچ داخل یک Extent قرار می گیرد، این نوع Fragmentation زمانی اوضاع را وخیم تر می کند که برای مرتب سازی مجبور شویم، بین Extentها حرکت کنیم. لطفاً به مثال زیر در این زمینه توجه فرمایید:
3- Fragmentation یا بهم ریختگی در سطح فایل (File Level)
این نوع Fragmentation زمانی رخ می دهد که بخش های مختلف یک فایل در قسمت های مختلف دیسک ذخیره شوند. به مثال زیر که مربوط به نحوه ی قرار گیری فایل های MDF و NDF یک پایگاه داده فرضی است توجه فرمایید:
mdf. | txt. | ndf. | ndf. | bak. | mdf. |
توجه: یکی از راه هایی که می توان از بروز Fragmentation در سطح فایل جلوگیری کرد، تخمین صحیح فضای مورد نیاز پایگاه داده، هنگام ایجاد آن است. بعنوان مثال اگر برای ایجاد پایگاه داده X، تخمینتان 20 گیگ است، از همان ابتدای ساخت پایگاه داده، این فضا را در اختیار آن قرار دهید تا گسستگی بین فایل های MDF یا NDF و ... جلوگیری نمایید.
عوامل بوجود آمدن Fragmentation در سطح فایل:
- Shrink کردن DataFile (برای کسب اطلاعات بیشتر به مطلب Shrink پایگاه داده چیست؟ مراجعه فرمایید)
- عدم تنظیم درست گزینه Auto Growing هنگام ساخت پایگاه داده
- عدم تنظیم درست گزینه های Allocation Unit Size و Strip Size
در ادامه به مشکل Page Split خواهیم پرداخت و سپس راه حل های رفع و یا جلوگیری از بروز Fragmentation را بررسی خواهیم کرد.
در ادامه آموزش Fragmentation چیست؟ خواهید دید ...!
با خرید جلسه 5 از بسته آموزشی "افزایش کارایی پایگاه داده" موارد زیر را خواهید دید:
- توضیح بیشتر در مورد Fragmentation و انواع مختلف آن
دسترسی به موارد آموزشی بالا در بسته خریداری شده
- شماره جلسه: 5
- نام فایل ویدئو: 03
- فرمت فایل: mp4.
نقطه شروع بحث بالا (Fragmentation) در ویدئو: 15:17
برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 13608