بخش های از فصل دهم

 

چرا نیاز مدیریت (ایجاد و نگهداری) داده‌های خلاصه سازی است

  • چطور می‌توانیم زمان پاسخگویی پرس‌وجوها را بهبود دهیم.
  • استفاده کردن از ایندکس‌ها
  • پارتیشن‌ کردن داده
  • پیاده‌سازی اجراهای موازی (parallel)
  • نتایج پرس‌جوهای از قبل محاسبه شده چیست؟
  • ایجاد داده‌های خلاصه‌سازی‌ها:( MVها)
  • Rewrite اتوماتیک SQLهای برنامه‌ها
  • بروزرسانی اتوماتیک داده‌ها

در اوراکل تکنیکهایی شناخته شده خوبی وجود دارند که با استفاده از آنها می‌توانید کارایی پرس‌وجوها را بهبود دهید. به عنوان مثال، می‌توانید ایندکس‌های اضافه ایجاد کنید یا داده‌ها را پارتیشن کنید.

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

استفاده کردن از خلاصه‌سازی به منظور بهبود کارایی پرس‌و‌جوها

  • خلاصه‌سازی‌ها یک نوع خاص از تجمیع اطلاعات هستند.
  • استفاده از داده‌های خلاصه‌سازی‌ها شده اجرای پرس‌وجوها را بهبود می‌بخشد و اینکار بوسیله ذخیره محاسبات از قبل انجام شده برای Joinهای سنگین و همچنین عملیات تجمیع‌سازی و ذخیره نتایج در یک جدول انجام می‌شود.
  • در اوراکل خلاصه‌سازی‌ با استفاده از یک شی با نام MV ایجاد می‌شود.

در واقع خلاصه‌سازی‌ ایجاد نمای تجمیعی از اطلاعات هستند که برای بهبود اجرای پرس‌وجوها ایجاد می‌شوند. وقتی شما از یک داده خلاصه‌سازی شده استفاده می‌کنید از  نتایج Join ها و عملیات تجمیعی قبل از محاسبه شده استفاده می‌کنید.

همچنین در اوراکل تکنیکهای شناخته شده خوبی وجود دارد که می‌توانید از آنها برای بهبود کارایی پرس‌وجوها استفاده کنید، به عنوان مثال می‌توانید ایندکس‌های اضافه ایجاد کرده یا داده را پارتیشن کنید.

نکته: واژه «خلاصه» از این واقعیت می‌آید که بیشترین زمان‌ کاربران محیط انبار داده صدف محاسبه Joinها و  تجمیع‌سازی داده‌های می‌شود وقتی که داده‌ها را با استفاده از MV در اوراکل خلاصه‌سازی می‌کنید نیازی به استفاده از Joinها یا تجمیع‌سازی ندارید و بنابراین زمان پاسخگویی پرس‌وجوها خلاصه می‌شود.

 

استفاده کردن از MV ها برای مدیریت داده‌های خلاصه‌سازی شده

وقتی کاربران پرس‌وجویی را بر روی نماها و یا جداول سرور اوراکل بصورت اتوماتیک پرس وجو را بازنویسی می‌کند تا از داده MV استفاده کند. استفاده از MV ها از دید کاربران یا برنامه‌هایی که از داده استفاده می‌کنند مخفی است.

دستورالعمل‌ ایجاد کردن  MV ها

MV هایی ایجاد کنید که نیاز تعداد زیادی از پرس‌وجوها را مرتفع سازد. فرض کنید که 20 پرس‌وجو برای واکشی داده‌ها از جداول FACT اجرا می‌شود می‌توانید 5 یا 6، MV ایجاد کنید که نیاز همه آنها را پوشش دهد.

یک MV می‌تواند شامل تعداد زیادی توابع تجمیعی باشد از جمله:

(MAX, SUM, COUNT (X) , COUNT (*) , COUNT (CISTINCT X), AVG,VARIANCE, STDDEV,MIN باشد و همچنین شامل تعداد زیادی Join باشد.

  • بجای اینکه چندین MV بسازید که شامل ستون‌های شاخص (Measure) های گوناگون باشد سعی کنید یک MV ایجاد کنید که شامل همه Measures ها باشد.
  • اگر از AVG(X) استفاده می‌کنید از COUNT(X) هم برای بروزرسانی تدریجی استفاده کنید.

مثالی از خلاصه‌سازی کردن بدون استفاده از MV ها

قبل از ارائه mv ها در پایگاه داده اوراکل، سازمان‌ها زمان و هزینه زیادی را برای ایجاد دستی داده‌های خلاصه‌سازی شده مصرف می‌کردند. آنها باید تشخیص می‌دادند که کدام MV ها باید ایجاد شوند و ایندکس‌های مناسب را برای آنها تعریف می‌کردند همچنین باید آنها را بروزرسانی می‌کردند و به کاربران پیشنهاد می‌کردند که از آنها استفاده کنند.

در مثال بالا، DBA یک جدول خلاصه‌سازی شده با cust_ sales_ sum برای ایجاد داده خلاصه‌سازی شده بهبود عملکرد پرس‌وجو ایجاد می‌کند. پس از ایجاد این جدول DBA باید به کاربران وجود این جدول را اعلام کند تا کاربران بتوانند از داده خلاصه‌سازی شده بجای پرس‌وجوی اصلی استفاده کنند.

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

 

مروری بر بازنویسی پرس‌وجو (QUERY REWRITE)

  • در صورت وجود MV مناسب اوراکل سعی می‌کند بجای استفاده از جداول پایه برای نمایش خروجی پرس‌وجو از MVها استفاده کند.
  • بازنویسی پرس‌وجو می‌تواند I/O, CPU و زمان مصرف شده برای نمایش نتیجه پرس‌وجو را با استفاده از MV کاهش دهد.
  • با استفاده از این روش یک پرس‌وجو نیاز به استخراج داده‌ از محل اصلی ندارد.
  • نیازمندی‌های متنوعی بوسیله بازنویسی پرس‌وجو(Queru Rewrite) برطرف می‌شود.

وقتی جداول پایه شامل حجم زیادی داده است منابع مصرف شده برای محاسبه، تجمیع‌سازی‌، و JOINهای لازم در میان جداول پر هزینه‌ و زمان‌بر است، در اینگونه مواقع اجرای پرس‌وجوها دقایق یا حتی ساعت‌ها طول می‌کشند. به دلیل انیکه MVها شامل داده‌های تجمیع‌سازی‌ شده و Join هایی است که از قبل محاسبه شده‌اند، پایگاه داده اوراکل یک پردازش قدرتمند با نام بازنویسی پرس‌وجو را اجرا می کند تا بتواند با استفاده از MV نتیجه پرس وجو را بدست آورده و بازگرداند. یکی از مزیت‌های ایجاد و نگهداری MVها توانایی آنها در بازنویسی پرس‌وجوها است که باعث می‌شود یک دستور SQL تغییر شکل داده شود و از MV استفاده کند. تغییر شکل از دید کاربران یا برنامه‌ها مخفی است. هنگام اجرای پرس‌وجو دو طرح (Plan) مجزا برای اجرای ان تهیه می‌شود یکی با استفاده از MV و دیگری بدون استفاده از آن و اگر هزینه طرح (Plan)استفاده از MV کمتر بود از آن استفاده می‌کند و در غیر اینصورت پرس‌وجوی اصلی را فراخوانی می‌کند.

 

ابعاد و سلسله مراتب‌ها

 

ابعاد توصیف تحلیل‌های کسب و کار مانند محصولات، سازمان‌ها و زمان هستند، یک بعد می‌تواند یک یا چند سلسله مراتب داشته باشد. در مثال یک بعد زمان نمایش داده شده که شامل یک سلسله مراتب تقویم است.

سلسله مراتب‌ها

یک سلسله مراتب شامل به چندین سطح است. و سطوح براساس کلید به سطح بالاتر متصل می‌شود. در سطح بالاتر داده‌ها براساس داده‌های سطح پائین‌تر تجمیع‌سازی می‌شوند در مثال نشان داده شده سلسله مراتب تقویم شامل سطوح روز، ماه، فصل و سال است.