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

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

همان طور که در مطلب گزینه های ساخت ایندکس مشاهده کردید، هنگام ساخت ایندکس با گزینه های مختلفی سروکار داریم:

گزینه های مختلف ایندکس

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON table_name (column [ ASC | DESC ] [ ,...n ] )   
    [ WITH (  
PAD_INDEX = { ON | OFF }
  | FILLFACTOR =fillfactor
  | SORT_IN_TEMPDB = { ON | OFF }
  | IGNORE_DUP_KEY = { ON | OFF }
  | STATISTICS_NORECOMPUTE = { ON | OFF }
  | STATISTICS_INCREMENTAL = { ON | OFF }
  | DROP_EXISTING = { ON | OFF }
  | ONLINE = { ON | OFF }
  | ALLOW_ROW_LOCKS = { ON | OFF }
  | ALLOW_PAGE_LOCKS = { ON | OFF }
  | MAXDOP =max_degree_of_parallelism
  | DATA_COMPRESSION = { NONE | ROW | PAGE} ]

بررسی گزینه ONLINE

گزینه ONLINE با مقدار ON یا OFF تنظیم می شود.

اگر گزینه ONLINE را با مقدار ON تنظیم کنید، عملیات ساخت یا Rebuild ایندکس بصورت OnLine انجام می شود. یعنی در زمان ساخت ایندکس، جدول Lock نمی شود و امکان کوئری زدن و انجام عملیات های DML وجود خواهد داشت. همچنین از پایگاه داده TempDB جهت ساخت ایندکس استفاده می شود.

گزینه Online، در نسخه Enterprise قابل استفاده است.

توجه: به ازای فیلدهای LOB قدیمی (Large Object Binary) مثل نوع Image، امکان ساخت ONLINE ایندکس وجود ندارد.

یک پایگاه داده سنگین که تراکنش های آن فوق العاده بالاست را تصور فرمایید، در اینگونه بانک های اطلاعاتی نمی توان برای ساخت و یا Rebuild ایندکس ها کاربران را Wait یا منتظر گذاشت، بنابراین بهترین راه استفاده از گزینه ONLINE است.

Rebuild ایندکس چیست؟ جداولی که Insert / Update / Delete بالایی دارند، امکان ایجاد Fragmentation در آنها زیاد است، بنابراین برای افزایش کارآیی و سرعت پایگاه داده بهتر است هر از چند گاهی ایندکس های تعریف شده روی جداول مذکور را Rebuild کنیم. به این ترتیب Fragmentation موجود حذف شده و زمان اجرای کوئری ها افزایش خواهد یافت.


نحوه ی ایجاد یا Rebuild ایندکس بصورت ONLINE

ساخت یا Rebuild ایندکس بصورت ONLINE شامل سه مرحله زیر است:

مرحله 1: Preparation یا آماده سازی

در این مرحله ابتدا ساختار ایندکس در حافظه Temp ایجاد می شود و در این حین اجازه ی نوشتن روی ایندکس اصلی Lock می شود.

مرحله 2: Build یا ساخت

بعد از ایجاد ساختار ایندکس، Lock مرحله قبل برداشته می شود و در ادامه داده های مربوط به ایندکس تحت یک عملیات دسته جمعی به حافظه Temp منتقل می شود.

مرحله 3: Final یا نهایی

در مرحله آخر برای مطابقت دادن ایندکس اصلی و موقت، ابتدا باید تمام عملیات های Insert / Update / Delete بصورت کامل انجام شود (Comite)، سپس عملیات های Insert / Update / Delete بصورت موقت Lock شده و عملیات به روز رسانی ایندکس در حافظه Temp انجام می شود، در آخر ایندکس اصلی حذف شده و ایندکس موقت، جایگزین آن می شود و قفل Insert / Update / Delete برداشته می شود.

توجه: در پایگاه داده هایی که تراکنش های بالایی دارند، ممکن است در ساخت و یا Rebuild ایندکس ها به مشکل بر بخورید، یعنی در مرحله Preparation و Final که به Lock نیاز داریم، این کار انجام نشود و ساخت یا Rebuild ایندکس در حالت Wait قرار بگیرد. در اینجا SQL Server 2014 دو پارامتر با نام های Max_duration و Abort_After_Wait را معرفی کرده است.


در ادامه آموزش گزینه ONLINE خواهید دید...!

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

  1. با یک مثال عملی نحوه ی استفاده از گزینه ONLINE را نشان دهید.
  2. نحوه استفاده از پارامترهای Max_duration و Abort_After_Wait در SQL Server 2014

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

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

نقطه شروع بحث بالا (گزینه ONLINE) در ویدئو:  04:04


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

READ MORE