سبد (0)

فشرده سازی در سطح Page

2- فشرده سازی در سطح Page یا (Page Level Compression)

در مبحث قبلی، فشرده سازی در سطح رکورد را بررسی کردیم. اما قبل از اینکه به بحث فشرده سازی در سطح Page بپردازیم لازم به ذکر یک مقدمه می باشد...!

فشرده سازی داده ها با استفاده از Token

لطفاً به دو جمله زیر دقت نمایید، و درباره چگونگی فشرده سازی آنها کمی فکر کنید. چگونه می توان با صرف حافظه ی کمتری آنها را ذخیره کرد..!؟

جملات

I would not like Them here or there

I would not Like Them anywhere

قصد داریم دو جمله بالا را با استفاده از Tokenها فشرده کنیم، یکی از بهترین انتخاب ها می تواند دو Token زیر باشد:

تعریف token

token 1 : I would not like Them

token 2 : here

حالا چطور از دو token بالا استفاده کنیم و جملات را فشرده کنیم؟ خیلی ساده، در دو جمله بالا، هر کجا که به Token 1 برخوردیم آنرا با شماره Token یعنی 1 جایگزین می کنیم، و این عمل را برای Token 2 نیز انجام می دهیم:

خروجی

1 2 or t2

1 anyw2

همانطور که در بالا مشاهده کردید دو جمله طولانی اول به دو جمله کوتاه تر تبدیل شدند. حالا که با روش فشرده سازی با استفاده از tokenها آشنا شدید، خیلی راحت تر می توان فشرده سازی در سطح Page را توضیح داد ...!


مراحل فشرده سازی در سطح Page

مرحله 1: انجام فشرده سازی در سطح رکورد

مرحله 2: Prefix Compression یا پیش فشرده سازی

  1. اعمال فشرده سازی در سطح Column
  2. استخراج Token و ذخیره آن در CL (مخفف Compression Information)
  3. فشرده سازی فیلدها با استفاده از Token

مرحله 3: Dictionary Compression

  1. اعمال فشرده سازی در سطح کل Page
  2. استخراج Token و ذخیره آن در CL
  3. حذف داده های تکراری

 چند نکته در مورد فشرده سازی داده ها (Data Compression)

  1. بیشترین تأثیر فشرده سازی بر روی داده های متنی است.
  2. تأثیر فشرده سازی بر روی داده های Encrypt شده ناچیز است.
  3. فشرده سازی، کاهش عملیات IO را درپی دارد.
  4. فشرده سازی افزایش ناچیز CPU Usage را درپی دارد.

مثال عملی فشرده سازی داده ها در سطح رکورد

مثال 1: نحوه ی تعریف جدول به نحوی که از مدل Page Level Compression تبعیت کند:

Page Level Compression

CREATE TABLE Page_Level_Compression
(
    Code   INT IDENTITY PRIMARY KEY,
    Family NVARCHAR(700),
    Name   NVARCHAR(700)
)WITH (Data_Compression = PAGE)

مثال 2: فشرده سازی جدول موجود:

Page Level Compression

ALTER TABLE Table_name REBUILD WITH (Data_Compression = page)

 در مثال بالا با استفاده از فرمان ALTER TABLE و عملیات REBUILD جدول با نام Table_name را با روش فشرده سازی در سطح Page، فشرده کرده ایم. توجه داشته باشید که تنها داده های جدول و ایندکس Clustered فشرده خواهد شد و روی ایندکس های NonClustered تأثیری نخواهد داشت.

مثال 3: فشرده کردن یک ایندکس خاص از یک جدول:

Page Level Compression

ALTER INDEX Index_name ON DataBase_name.Table_name
    REBUILD WITH(DATA_COMPRESSION=PAGE)

مثال 4: فشرده کردن کلیه ایندکس های یک جدول خاص:

Page Level Compression

ALTER INDEX ALL ON Sales.SalesOrderHeader 
    REBUILD WITH(DATA_COMPRESSION=PAGE)

در ادامه بحث Page Level Compression  خواهید دید ...!

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

  1. با یک مثال عملی، تأثیر Page Level Compression بر روی کارایی پایگاه داده را نشان خواهیم داد.
  2. چگونه با استفاده از تابع dm_db_index_physical_stats لیست کلیه جداول و ایندکس های فشرده را بدست آوریم.
  3. بدون نوشتن کوئری چگونه فشرده سازی را انجام دهم (از طریق کنسول SQL Server)؟

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

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

نقطه شروع بحث بالا (Page Level Compression) در ویدئو:  7:26


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

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