استخدم الفهرس يا لوقا! › العمليات 74 / 139 السابق التالي

العمليات

يشرح هذا القسم أشهر عمليات خطة التنفيذ في قاعدة بيانات SQL Server من Microsoft. ويمكنك أيضاً الاطلاع على وثائق Microsoft.

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

لمصطلحات SQL Server بساطة: عمليات «Scan» تقرأ الفهرس أو الجدول بأكمله، بينما تستخدم عمليات «Seek» شجرة B أو عنواناً فيزيائياً (RID، مثل ROWID في Oracle) للوصول إلى جزء محدد من الفهرس أو الجدول.

Index Seek, Clustered Index Seek

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

Index Scan, Clustered Index Scan

تقرأ الفهرس بأكمله — جميع الصفوف — بترتيب الفهرس. وتبعاً لإحصاءات نظام متنوعة، قد تنفّذ قاعدة البيانات هذه العملية إذا احتاجت جميع الصفوف بترتيب الفهرس — مثلاً بسبب جملة order by مقابلة.

Key Lookup (Clustered)

تسترجع صفاً واحداً من فهرس عنقودي. وهي شبيهة بـINDEX UNIQUE SCAN في Oracle بالنسبة لجدول منظَّم بالفهرس (IOT). انظر أيضاً «تجميع البيانات: القوة الثانية للفهرسة».

RID Lookup (Heap)

تسترجع صفاً واحداً من جدول — مثل TABLE ACCESS BY INDEX ROWID في Oracle. انظر أيضاً «تشريح فهرس SQL».

Table Scan

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

إن أعجبك هذا الموضوع، قد يعجبك أيضاً…

… أن تشترك في القوائم البريدية، وتحصل على ملصقات مجانية، وتشتري كتابي، أو تنضم إلى دورة تدريبية.

عمليات الربط

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

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

Hash Match

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

Merge Join

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

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

Sortترتّب النتيجة وفق جملة order by. وتحتاج هذه العملية إلى كميات كبيرة من الذاكرة لتجسيد النتيجة الوسيطة (غير متدفقة). انظر أيضاً «فهرسة Order By».

Sort (Top N Sort)

ترتّب مجموعة فرعية من النتيجة وفق جملة order by. وتُستخدم لاستعلامات Top-N إذا لم يكن التنفيذ المتدفق ممكناً. انظر أيضاً «الاستعلام عن صفوف Top-N».

Stream Aggregate

تجمّع مجموعة مرتَّبة مسبقاً وفق جملة group by. ولا تخزّن هذه العملية النتيجة الوسيطة مؤقتاً — بل تُنفَّذ على نحو متدفق. انظر أيضاً «فهرسة Group By».

Hash Match (Aggregate)

تجمّع النتيجة باستخدام جدول تجزئة. وتحتاج هذه العملية إلى كميات كبيرة من الذاكرة لتجسيد النتيجة الوسيطة (غير متدفقة). والخرج غير مرتَّب بأي طريقة ذات معنى. انظر أيضاً «فهرسة Group By».

استعلامات Top-N

Topتوقف العمليات الأساسية عند جلب عدد الصفوف المطلوب. انظر أيضاً «الاستعلام عن صفوف Top-N».

وتتوقف كفاءة استعلام Top-N على نمط تنفيذ العمليات الأساسية؛ وهو غير فعّال أبداً عند إيقاف عمليات غير متدفقة مثل Sort.