it-swarm.asia

الفرق بين تجزئة ، دمج وربط؟

في SQL Server ، يمكنك تحديد تلميحات الانضمام:

  • تجزئة JOIN
  • دمج انضم
  • حلقة انضم

ما هو تعريف تلميحات الربط الثلاثة هذه ، ومتى يجب استخدام كل منها؟

42
Andrew Bickerton

من MSDN ، في موضوع مفاهيم ضبط الاستعلام المتقدمة :

يستخدم SQL Server ثلاثة أنواع من عمليات الربط:

  • ينضم حلقات متداخلة

  • ينضم دمج

  • ينضم Hash

إذا كان أحد إدخالات الصلة صغيرًا (أقل من 10 صفوف) وكان إدخال الصلة الآخر كبيرًا إلى حد ما ومفهرسًا في أعمدة الصلة الخاصة به ، فإن حلقات حلقات الفهرس المتداخلة هي أسرع عملية ربط لأنها تتطلب أقل إدخال/إخراج وأقل مقارنات. لمزيد من المعلومات حول الحلقات المتداخلة ، راجع فهم صلات الحلقات المتداخلة.

إذا لم يكن إدخالا الصلة صغيرين ولكن تم فرزهما في عمود الصلة (على سبيل المثال ، إذا تم الحصول عليهما عن طريق مسح الفهارس المصنفة) ، فإن دمج الدمج هو أسرع عملية ربط. إذا كان كل من مدخلي الصلة كبيرًا والمدخلان لهما أحجام متشابهة ، فإن دمج الدمج مع الفرز السابق ووصلة التجزئة يوفران أداءً مشابهًا. ومع ذلك ، غالبًا ما تكون عمليات ربط التجزئة أسرع كثيرًا إذا اختلف حجما الإدخال بشكل كبير عن بعضهما البعض. لمزيد من المعلومات ، راجع فهم عمليات دمج الدمج.

يمكن لوصلات Hash معالجة المدخلات الكبيرة وغير المصنفة وغير المفهرسة بكفاءة.

ولكن أعتقد أنه يجب أن تبدأ بموضوع أساسي أكثر: Query Tuning وأخيرًا انتقل إلى استخدام تلميحات الاستعلام.

39
Marian