استخدم الفهرس يا لوقا! › عمليات خطة تنفيذ Db2 (LUW) 58 / 139 السابق التالي

عمليات خطة التنفيذ في Db2 (LUW)

مرجع قصير لأكثر عمليات خطة التنفيذ شيوعاً في Db2 (LUW). تجد القائمة الكاملة في وثائق IBM.

الوصول إلى الفهرس والجدول

IXSCAN

تنفّذ IXSCAN اجتياز شجرة B و تتبع سلسلة العقد الورقية للعثور على جميع المدخلات المطابقة. انظر أيضاً الفصل 1، «تشريح فهرس SQL».

وما يسمى مُسندات ترشيح الفهرس (مُسندات «SARG») كثيراً ما يسبّب مشكلات أداء لعملية IXSCAN. ويشرح القسم التالي كيفية تحديدها. وهي شبيهة بعائلة عمليات INDEX ... SCAN في Oracle.

ويشير غياب مُسندَي START وSTOP إلى مسح فهرس كامل.

ويشير عرض last_explained إلى المسح المعاكس بين قوسين (مثل IXSCAN (REVERSE)).

FETCH

تسترجع صفاً من الجدول باستخدام RID المسترجع من بحث الفهرس السابق. انظر أيضاً الفصل 1، «تشريح فهرس SQL». وهي شبيهة بـTABLE ACCESS BY INDEX ROWID في Oracle.

TBSCAN

وتُعرف أيضاً بالمسح الكامل للجدول. تقرأ الجدول بأكمله — جميع الصفوف والأعمدة — كما هو مخزّن على القرص. ومع أن عمليات القراءة متعددة الكتل تحسّن سرعة المسح الكامل تحسناً كبيراً، فهو لا يزال من أغلى العمليات. فإلى جانب معدلات الإدخال/الإخراج العالية، يجب أن يفحص المسح الكامل جميع صفوف الجدول، لذا قد يستهلك أيضاً قدراً كبيراً من وقت المعالج. انظر أيضاً «المسح الكامل للجدول».

RIDSCN

تُستخدم هذه العملية في دمج الفهارس، وربما أكثر من ذلك في الجلب المسبق لصفحات البيانات بعد فرزها.

عمليات الربط

تعالج عمليات الربط عموماً جدولين في المرة الواحدة. وإذا كان للاستعلام عمليات ربط أكثر، نُفِّذت تتابعياً: الجدولان الأولان أولاً، ثم النتيجة الوسيطة مع الجدول التالي. وفي سياق الربط، قد يعني مصطلح «جدول» أيضاً «نتيجة وسيطة».

NLJOIN

تربط جدولين بجلب النتيجة من جدول والاستعلام من الجدول الآخر مقابل كل صف من الأول. انظر أيضاً «الحلقات المتداخلة».

HSJOIN

يحمّل الربط بالتجزئة السجلات المرشحة من أحد طرفَي الربط إلى جدول تجزئة، ثم يُفحص مقابل كل صف من الطرف الآخر للربط. انظر أيضاً «الربط بالتجزئة».

MSJOIN

يجمع ربط الدمج قائمتين مرتَّبتين كما يُغلق السحّاب. ويجب أن يكون طرفا الربط مرتَّبين مسبقاً. انظر أيضاً «دمج الترتيب».

ZZJOIN

ربط متعدد الجداول (أكثر من جدولين) مخصص لمستودعات البيانات التي تستخدم مخطط النجمة.

الترتيب والتجميع

SORT

ترتّب النتيجة وفق جملة order by. وتحتاج هذه العملية إلى كميات كبيرة من الذاكرة لتجسيد النتيجة الوسيطة (غير متدفقة). وتُستخدم أيضاً لإنشاء الترتيب المطلوب لعمليات MSJOIN أو GRPBY. إضافةً إلى ذلك، قد تحذف SORT الصفوف المكرّرة لعملية distinct. انظر أيضاً «فهرسة Order By».

ويشير عرض last_explained إلى ما إذا كان هناك إزالة للتكرار بين قوسين (مثل SORT (UNIQUE)). وتُوسم عمليات فرز Top-N بـTOP-N (مثلاً بسبب fetch first ... rows only).

UNIQUE

تزيل تكرار الصفوف في مجموعة مرتَّبة مسبقاً. وتُستخدم من أجل distinct عندما يمكن إنشاء الترتيب المطلوب دون عملية SORT (مثلاً لأن IXSCAN يعيدها بالترتيب المطلوب). وعند لزوم عملية SORT، تتولى عملية SORT نفسها إزالة التكرار.

GRPBY

تجمّع مجموعة وفق جملة 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 عاملة.