سبد (0)

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

  • فشرده سازی یا Data Compression چیست؟

    با استفاده از عملیات فشرده سازی یا Data Compression می توان داده ها را بصورت فشرده در پایگاه داده ذخیره نمود.

    فشرده سازی باعث کاهش حجم Dataها می شود.

    عملیات فشرده سازی به ازای موارد زیر اعمال خواهد شد:

    • جداول Heap
    • ایندکس های Clusterd
    • ایندکس های NonClusterd
    • Index View ها

    عملیات فشرده سازی چگونه کار می کند؟

    تصور فرمایید که داده ها به صورت فشرده در پایگاه داده ذخیره شده اند، حالا زمانی که از طرف Application داده ای درخواست می شود، داده های فشرده مذکور به حافظه Cache منتقل می شوند. در ادامه Cpu وظیفه Uncompressed کردن داده ها را دارد، که البته زمان Uncompressed خیلی هزینه بر نیست.


    انواع روش های فشرده سازی (Data Compression)

    1. فشرده سازی در سطح رکورد یا (Row Level Compression)
    2. فشرده سازی در سطح Page یا (Page Level Compression)

    در ادامه به اختصار در مورد موارد بالا توضیح داده خواهد شد.


    1- فشرده سازی در سطح رکورد یا (Row Level Compression)

    این نوع فشرده سازی شامل دو مرحله زیر است:

    1. ابتدا حجم meta Dataهای مربوط به هر رکورد، به حداقل می رسد.
    2. سپس داده های با طول ثابت مثل Char به داده های با طول متغیر تبدیل می شوند.

     حالا چگونه یک جدول را می توان در سطح رکورد فشرده کرد؟

    جداول را یا هنگام ساختشان می توان با تنظیم گزینه Data_Compression با مقدار Row در سطح رکورد فشرده کرد و یا بعد از زمان ایجادشان، در این صورت باید ایندکس اصلی جدول که یک ایندکس Clustered است را فشرده کرد، با این کار عملاً داده های جدول را فشرده ساخته ایم.


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

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

    ایجاد جدول بصورت Row Compression

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

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

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

    1. چگونه جداولی که ایجاد شده اند و دارای ایندکس های مختلفی هستند را در سطح رکورد فشرده کنم؟
    2. چگونه داده های از نوع Char فشرده می شوند؟
    3. من برای یادگیری بیشتر مورد بالا، به یک مثال نیاز دارم...!
    4. با یک مثال عملی، تأثیر Row Level Compression بر روی کارایی را نشان دهید.

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

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

    نقطه شروع بحث بالا (Data Compression) در ویدئو:  1:50


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

    READ MORE
  • 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 کلیک کنید.

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