2015/11/19

مقدمة عن ال Execution Plan

مقدمة عن ال Execution Plan

 مقدمة

في هذا المقال سوف نتناول الخطوات البدائية للتعامل مع ال Execution Plan و يعتبر هذا المقال امتداد للمقالين السابقين على الروابط التالية
وسوف نستعرض كيفية عرض الGraphical Execution Plan و المعلومات البدائية المستخرجة منها


كيفية عرض ال Execution Plan

لعرض ال Estimated Execution Plan يتم ذلك عن طريق كتابة الكويري المطلوبة و الضغط على Display Estimated Execution Plan
شكل 01
و لعرض ال Actual Execution Plan فكما ذكرت في المقال السابق انها تحتاج الى تنفيذ الكويري لانها ليست مستنتجة من ال Optimizer و لذلك يتم التعليمم على Include Actual Execution Plan ثم تنفيذ ال Query

شكل 02
و غالبا تكون ال Plan الفعلية مشابهة الى ال Estimated الا انه قد تحدث اختلافات كما ذكرنا في المقال السابق اهم اسبابها عدم تحديث ال Statistics
مثال ل Execution Plan
شكل 03 - مثال ل Execution Plan

تفسير ال Graphical Execution Plan

فكما نلاحظ من الشكل 03 انها مقسمة الى جزئين جزء يعرض ال Query بالاعلى و جزء يعرض ال Operations التي تتم لتنفيذ ال Query بالاسفل.
و لقراءة ال Plan تحتاج الى قراءتها من اتجاه اليمين الى اليسار و ليس العكس حيث ان التنفيذ الفعلي يحتاج الى البحث في البيانات و سحبها ثم عرضها فهذا الاستعلام البسيط يحتاج لتنفيذه الى عمليتان هما Table Scan و Select فعملية ال Table Scan تعني انه يدخل الى كل صف مخزن داخل الجدول الذي لا يوجد به Clustered Index
و نلاحظ ايضا وجود سهم متجه من ال Table Scan الى ال Select و هو يوضح اتجاه تدفق البيانات بين العمليات كما ان سُمك هذا السهم يدل على حجم البيانات التي يتم العمل عليها بين العمليات المختلفة فكلما زادت عدد البيانات زاد سُمك السهم.
و نلاحظ تحت كل عملية يوجد رقم نسبي يوضح تكلفة تنفيذ هذه العملية بالنسبة لباقي العمليات كما انه في الجزء الاعلى يوجد رقم نسبي لتكلفة Query بالنسبة لباقي الQueries التي يتم تنفيذها في ال Batch و طبعا هذا بفرض انه كان هناك اكثر من Query و تم عرض ال Execution Plan لهم في وقت واحد.

ال Tool-Tip

عند الوقوف على اي ايكون داخل ال Execution Plan تظهر Tool-tip توضح بعض المعلومات مثلا عند الوقوف على Select يظهر الشكل التالي
شكل 04 - Tool-tip
و يعرض معلومات ملخصة و ليست تفصيلية و لكنها هامة جدا لاستنتاج المشاكل التي قد تكون في جملة الاستعلام كما ان هذه المعلومات قد تختلف من نوع عملية الى اخر.
فعلى سبيل المثال المعلومات التي تظهر مع ال Select عبارة عن حجم الPlan عند تخزينها في ال Plan Cache و تكلفة العملية Estimate Operator Cost و اجمال تكلفة العملية و العمليات السابقة لها Estimate SubTree Cost و عدد الصفوف المتأثرة .....الخ
و في المقالات القادمة سوف نستعرض هذه المعلومات و نقوم ببعض التحليل لها

Operator Properties

يوجد لكل عملية داخل ال Plan بعض الخصائص Properties و تظهر بالضغط كليك يمين على العملية و اختيار Properties و هذه الخصائص تظهر معلومات تفصيلية عن العمليات.
شكل 05 - Properties


و بذلك نكون قد استطعنا عرض اول Execution Plan و معرفة بعض عناصرها و خصائصها وفي المقالات التالية سوف ندخل بشكل اعمق في هذه التفاصيل المختلفة و تأثيرها على اداء ال SQL Server

--------------


تم بحمد الله :)

ليست هناك تعليقات:

مقدمة عن الDevOps

في هذا المقال سوف اتحدث عن مقدمة بسيطة عن ال DevOps ولماذا لابد ان تهتم فرق تطوير البرمجيات به وما هي النتائج المترتبة عن استخدام اساليبه ...