آموزش پیشرفته SQL Server (جلسه پنجم) - Fragmentation

Fragmentation، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی Fragmentation، قسمت های قبلی را مرور فرمایید.


Fragmentation چیست؟

Fragmentation بمعنی از هم گسیخته شدن یا متلاشی شدن است.

در مثال زیر، نحوه ی قرار گیری داده های A و B و C قبل از اینکه Fragmentation اتفاق بیافتد را مشاهده می کنید:

 فضای خالی

فرض کنید بخواهیم به A مقداری اضافه کنیم، اتفاقی که خواهد افتاد از قسمت "فضای خالی" مطابق شکل زیر به آن اختصاص خواهد داد و این باعث بروز مشکل Fragmentation یا از هم گسیختگی داده ها خواهد شد:

A B C A فضای خالی

برای رفع مشکل Fragmentation باید مقدار A دوم در کنار اولی قرار بگیرد:

A A B C فضای خالی

توجه: حالت بهینه ذخیره شدن داده ها بنحوی است که آدرس فیزیکی و منطقی آنها یکسان باشد. همان طور که می دانید داده ها در SQL Server در مفهومی بنام Page ذخیره می شوند، هر Page به صفحه ی "قبلی"  و "بعدی" خودش اشاره می کند. بنابراین اگر صفحه ی قبلی و بعدی Page جاری دقیقاً Pageهای کناری خودش باشد، بهترین حالت ممکن اتفاق افتاده است و مشکل Fragmentation وجود نخواهد داشت.


انواع Fragmentation

  1. Fragmentation یا بهم ریختگی Internal یا Logical
  2. Fragmentation یا بهم ریختگی Extent یا External
  3. Fragmentation یا بهم ریختگی در سطح فایل (File Level)

در ادامه به توضیح هر کدام از موارد بالا خواهیم پرداخت.


1- Fragmentation یا بهم ریختگی Internal یا Logical

Fragmentation یا بهم ریختگی Internal در اثر وجود فضاهای غیرقابل استفاده در یک Page ایجاد می شود. لطفاً به مثال زیر توجه نمایید:

Page 1
 پهلوان امیر  100


فضای غیر قابل استفاده
 احمدی  مریم 102
Page 2
پهلوان امیر 100
طاهری مهدی 101


فضای غیر قابل استفاده

------

Page n


فضای غیر قابل استفاده
 پهلوان  نرگس 104
 طاهری  مهدی 105

2- Fragmentation یا بهم ریختگی Extent یا External

در این نوع Fragmentation، ترتیب منطقی صفحات با ترتیب فیزکیشان یکسان نیست.

همان طور که قبلا توضیح داده شد، هر 8 پیچ داخل یک Extent قرار می گیرد، این نوع Fragmentation زمانی اوضاع را وخیم تر می کند که برای مرتب سازی مجبور شویم، بین Extentها حرکت کنیم. لطفاً به مثال زیر در این زمینه توجه فرمایید:

Extent 1
Page1
Page2
Page3
Page10
Page11
Page12
Page13
Page14
Extent 2
Page4
Page5
Page6
Page15
Page19
Page20
Page23
Page24
Extent 3
Page7
Page8
Page9
Page16
Page17
Page18
Page21
Page22

3- Fragmentation یا بهم ریختگی در سطح فایل (File Level)

این نوع Fragmentation زمانی رخ می دهد که بخش های مختلف یک فایل در قسمت های مختلف دیسک ذخیره شوند. به مثال زیر که مربوط به نحوه ی قرار گیری فایل های MDF و NDF یک پایگاه داده فرضی است توجه فرمایید:

mdf. txt. ndf. ndf. bak. mdf.

توجه: یکی از راه هایی که می توان از بروز Fragmentation در سطح فایل جلوگیری کرد، تخمین صحیح فضای مورد نیاز پایگاه داده، هنگام ایجاد آن است. بعنوان مثال اگر برای ایجاد پایگاه داده X، تخمینتان 20 گیگ است، از همان ابتدای ساخت پایگاه داده، این فضا را در اختیار آن قرار دهید تا گسستگی بین فایل های MDF یا NDF و... جلوگیری نمایید.

عوامل بوجود آمدن Fragmentation در سطح فایل:

  1. Shrink کردن DataFile (برای کسب اطلاعات بیشتر به مطلب Shrink پایگاه داده چیست؟ مراجعه فرمایید)
  2. عدم تنظیم درست گزینه Auto Growing هنگام ساخت پایگاه داده
  3. عدم تنظیم درست گزینه های Allocation Unit Size و Strip Size

 در ادامه به مشکل Page Split خواهیم پرداخت و سپس راه حل های رفع و یا جلوگیری از بروز Fragmentation را بررسی خواهیم کرد.


در ادامه آموزش Fragmentation چیست؟ خواهید دید...!

با خرید جلسه 5 از بسته آموزشی "افزایش کارایی پایگاه داده" موارد زیر را خواهید دید:

  1. توضیح بیشتر در مورد Fragmentation و انواع مختلف آن

دسترسی به موارد آموزشی بالا در بسته خریداری شده

  • شماره جلسه: 5
  • نام فایل ویدئو: 03
  • فرمت فایل: mp4.

نقطه شروع بحث بالا (Fragmentation) در ویدئو:  15:17


برای خرید و دانلود کاملآموزش پیشرفته SQL Server کلیک کنید.

READ MORE