سبد (0)

Shrink پایگاه داده چیست؟

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

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


7- Shrink پایگاه داده چیست؟

Shrink در لغت به معنی جمع و جور کردن و یا منقبض کردن است.

Shrink در واقع فضای DataFile و LogFile را جمع و جور می کند.

Shrink، آخرین فضای پر را به اولین فضای خالی منتقل می کند.

با استفاده از Shrink  می توان فضاهای خالی بانک اطلاعاتی را از بین برد و آنها را در یک قسمت جمع نمود.

تأثیر Shrink  بر روی ایندکس ها

Shrink، یک تأثیر منفی روی ایندکس ها خواهد داشت ...!

لطفاً به مثال زیر توجه فرمایید، در جدول اول نحوه ی قرار گیری داده ها قبل از Shrink را مشاهده می کنید و در جدول دوم، چگونگی جابه جایی X4 و X3 و X2 به اولین فضای خالی نشان داده شده است:

بدون Shrink
      x1
    x2  
  x3    
x4      

<------

بعد از Shrink
 x2  x3 x4 x1
       
       
       

فضاهای متمایز شده با رنگ قرمز، جزو فضاهای بدون استفاده محسوب می شود که بعد از عملیات Shrink قابل استفاده خواهد بود. شاید متوجه شده باشید که بعد از Shrink، ترتیب قرار گیری داده ها به هم ریخته است ...!

بعد از عملیات Shrink در واقع Fragmentation اتفاق افتاده است، یعنی یک Page به صفحه ای قبل از خودش اشاره می کند. (X2 به یک صفحه قبل از خودش یعنی X3 اشاره می کند و X3 نیز به X4)

بنابراین عملیات Shrink باعث افزایش Fragmentation و همچنین Page Split ایندکس ها خواهد شد و بخاطر این دو اتفاق مدت زمان Locking افزایش خواهد یافت.


مثال عملی از Shrink

مثال 1: اسکریپت مربوط به Shrink پایگاه داده:

با استفاده از دستور DBCC SHRINKDATABASE می توان فضای DataFile و LogFile را جمع و جور (Shrink) کرد:

Shri nk پایگاه داده

DBCC SHRINKDATABASE 
( database_name | database_id | 0
     [ , target_percent ]
     [ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]

برای کسب اطلاعات بیشتر در مورد دستور بالا به لینک روبرو مراجعه فرمایید: SHRINKDATABASE

مثال 2: اسکریپت مربوط به Shrink فایل DataFile یا LogFile

با استفاده از دستور DBCC SHRINKFILE می توان فضای Datafile یا Logfile را جمع و جور (Shrink) کرد:

Shri nk فایل LogFile

DBCC SHRINKFILE 
(
    { file_name | file_id }
    { [ , EMPTYFILE ]
    | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
    }
)
[ WITH NO_INFOMSGS ]

برای کسب اطلاعات بیشتر در مورد دستور بالا به لینک روبرو مراجعه فرمایید: SHRINKFILE


در ادامه بحث Shrink خواهید دید ...!

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

  1. با یک مثال عملی، تأثیر Shrink بر کاهش فضای DataFile و LogFile را نشان دهید.
  2. با یک مثال عملی، افزایش Fragmentation را نشان دهید.
  3. آیا rebuild کردن ایندکس ها مشکل fragmentation را حل می کند؟
  4. در سیستم های بانک اطلاعاتی بزرگ آیا Shrink کردن DataFile و LogFile صحیح است؟

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

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

نقطه شروع بحث بالا (Shrink) در ویدئو:  0:10


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

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه