عمليات خطة التنفيذ في Db2 (LUW)
مرجع قصير لأكثر عمليات خطة التنفيذ شيوعاً في Db2 (LUW). تجد القائمة الكاملة في وثائق IBM.
الوصول إلى الفهرس والجدول
تنفّذ IXSCAN اجتياز شجرة B و تتبع سلسلة العقد الورقية للعثور على جميع المدخلات المطابقة. انظر أيضاً الفصل 1، «تشريح فهرس SQL».
وما يسمى مُسندات ترشيح الفهرس (مُسندات «SARG») كثيراً ما يسبّب مشكلات أداء لعملية IXSCAN. ويشرح القسم التالي كيفية تحديدها. وهي شبيهة بعائلة عمليات INDEX ... SCAN في Oracle.
ويشير غياب مُسندَي START وSTOP إلى مسح فهرس كامل.
ويشير عرض last_explained إلى المسح المعاكس بين قوسين (مثل IXSCAN (REVERSE)).
تسترجع صفاً من الجدول باستخدام RID المسترجع من بحث الفهرس السابق. انظر أيضاً الفصل 1، «تشريح فهرس SQL». وهي شبيهة بـTABLE ACCESS BY INDEX ROWID في Oracle.
وتُعرف أيضاً بالمسح الكامل للجدول. تقرأ الجدول بأكمله — جميع الصفوف والأعمدة — كما هو مخزّن على القرص. ومع أن عمليات القراءة متعددة الكتل تحسّن سرعة المسح الكامل تحسناً كبيراً، فهو لا يزال من أغلى العمليات. فإلى جانب معدلات الإدخال/الإخراج العالية، يجب أن يفحص المسح الكامل جميع صفوف الجدول، لذا قد يستهلك أيضاً قدراً كبيراً من وقت المعالج. انظر أيضاً «المسح الكامل للجدول».
تُستخدم هذه العملية في دمج الفهارس، وربما أكثر من ذلك في الجلب المسبق لصفحات البيانات بعد فرزها.
عمليات الربط
تعالج عمليات الربط عموماً جدولين في المرة الواحدة. وإذا كان للاستعلام عمليات ربط أكثر، نُفِّذت تتابعياً: الجدولان الأولان أولاً، ثم النتيجة الوسيطة مع الجدول التالي. وفي سياق الربط، قد يعني مصطلح «جدول» أيضاً «نتيجة وسيطة».
تربط جدولين بجلب النتيجة من جدول والاستعلام من الجدول الآخر مقابل كل صف من الأول. انظر أيضاً «الحلقات المتداخلة».
يحمّل الربط بالتجزئة السجلات المرشحة من أحد طرفَي الربط إلى جدول تجزئة، ثم يُفحص مقابل كل صف من الطرف الآخر للربط. انظر أيضاً «الربط بالتجزئة».
يجمع ربط الدمج قائمتين مرتَّبتين كما يُغلق السحّاب. ويجب أن يكون طرفا الربط مرتَّبين مسبقاً. انظر أيضاً «دمج الترتيب».
ربط متعدد الجداول (أكثر من جدولين) مخصص لمستودعات البيانات التي تستخدم مخطط النجمة.
الترتيب والتجميع
ترتّب النتيجة وفق جملة order by. وتحتاج هذه العملية إلى كميات كبيرة من الذاكرة لتجسيد النتيجة الوسيطة (غير متدفقة). وتُستخدم أيضاً لإنشاء الترتيب المطلوب لعمليات MSJOIN أو GRPBY. إضافةً إلى ذلك، قد تحذف SORT الصفوف المكرّرة لعملية distinct. انظر أيضاً «فهرسة Order By».
ويشير عرض last_explained إلى ما إذا كان هناك إزالة للتكرار بين قوسين (مثل SORT (UNIQUE)). وتُوسم عمليات فرز Top-N بـTOP-N (مثلاً بسبب fetch first ... rows only).
تزيل تكرار الصفوف في مجموعة مرتَّبة مسبقاً. وتُستخدم من أجل distinct عندما يمكن إنشاء الترتيب المطلوب دون عملية SORT (مثلاً لأن IXSCAN يعيدها بالترتيب المطلوب). وعند لزوم عملية SORT، تتولى عملية SORT نفسها إزالة التكرار.
تجمّع مجموعة وفق جملة group by. وقد تُنفَّذ هذه العملية بخوارزمية فرز/تجميع أو بنهج قائم على التجزئة (منذ الإصدار 10.1). انظر أيضاً «فهرسة Group By».
ويشير عرض last_explained إلى نمط التجميع بين قوسين (مثل GRPBY (HASH COMPLETE)).
استعلامات Top-N
ليس في Db2 (LUW) عمليات خطة تنفيذ تتصل مباشرةً بجمل Top-N مثل fetch first ... rows only. غير أنه إذا نُفِّذت عملية SORT، يشير عرض last_explained إلى تحسين Top-N بين قوسين (مثل SORT (TOP-N)).
وإذا لم تكن هناك حاجة إلى عملية SORT، فلا توجد علامة ظاهرة لسلوك Top-N في خطة التنفيذ. لكن الانخفاض المفاجئ في قيمة التكلفة أو في تقديرات عدد الصفوف مع غياب المُسندات قد يلمّح إلى وجود جملة Top-N عاملة.