آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

مثال دوم query plan

دوره های مرتبط با این مقاله

مثال دوم query plan

اجازه دهید با استفاده ازدیتابیس AdventureWorksDW وارد یک query پیچیده تر بشویم.

توضیحات

اجازه بدهید جدول تولیدات را بر اساس ReorderPoint < 800 فیلتر کرده و با رنگ گروه بندی کنیم و تنها رکوردهایی را نشان دهیم که بیشتر از 10 عدد دارند. بنابراین query ما به شکل زیر خواهد بود:

SELECT Color, COUNT(DISTINCT ProductKey)
FROM AdventureWorksDW..DimProduct
WHERE ReorderPoint < 800
GROUP BY Color ‎
HAVING COUNT(DISTINCT ProductKey) > 10
ORDER BY Color

یک پنجره ی query جدید باز کرده و CTRL+M را فشار دهید تا Actual Execution Plan ( طرح اجرای حقیقی) را وارد کنید و سپس query بالا را اجرا کنید.

Actual Execution Plan برای این query در زیر نمایش داده شده است:

آموزش SQL Server

در تصویر بالا مشاهده می کنید که SQL Server ، query را به یک روش خطی پردازش کرده و مقدار درصد هزینه را زیر هر آیکن اپراتور ذکر کرده است.

بنابراین مراحل برای این طرح عبارتند از:

  • Clustered Index Scan روی جدول DimProduct (هزینه 88 درصد) ( داده را در حالیکه ReorderPoint < 800 به دست می آورد.)
    • با استفاده از عملکرد مرتب سازی (sort)، مرتب سازی براساس رنگ انجام می شود (هزینه 11 درصد)
    • عملکرد جریان مصالح (Stream Aggregate operation) (هزینه 0 درصد) (گروه بندی شده براساس رنگ یا شماره)
    • عملکرد محاسبه ی اسکالر (Compute Scalar operation) ( شمارش)
    • فیلتر کردن نتایج (هزینه 0) ( دارای شمار > 10)
    • انتخاب بازگشت مجموعه نتایج ( هزینه 0) ( گزارش داده)
  • برای وارد کردن بهبودهای ممکن برای این query، باید آیتم های زیر را جستجو کنیم:
    • عملکردهای منابع فشرده (resource intensive operations) که در آنها درصد بالا می باشد.
    • اسکن عملکردها و نوارهای ضخیم بین اپراتورها (هرچه نوار ضخیم تر باشد، تعداد داده ها بیشتر میباشد.)

واضح است که فشرده ترین منبع عملکرد Clustered Index Scan روی جدول DimProduct می باشد که از 88 درصد همه ی منابع استفاده کرده و تعداد زیادی ازردیف ها را ه عملکرد بعدی منتقل می کند.

آموزش SQL Server

چگونه می توانیم اجرا را بهبود ببخشیم؟

این کار بسیار ساده می باشد، زیرا SSMS نشان یک ایندکس گم شده را به رنگ سبز به ما نشان می دهد. اگر روی این بخش سبز رنگ راست کلیک کنید، یک منو نمایش داده خواهد شد، Missing Index Details... را انتخاب کنید.

آموزش SQL Server

یک پنجره ی query جدید با کد زیر باز خواهد شد. این کد پیشنهاد می دهد که یک ایندکس جدید روی ستون the ReorderPoint وارد کرده و ستون Color را در ایندکس وارد کنیم. براساس ایندکس جدید query باید یک عملکرد Index Seek انجام دهد و می توانیم براساس برآورد Query Optimizer ، سرعت query را تا 86 درصد بالا ببریم.

  • 2848
  •    826
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .