سؤال

ولدي هذا SQL:

SELECT
  *
FROM
  Requisicao r
  join convenio c on c.idconvenio = r.idconvenio
  join empresa e on e.idempresa = c.idempresa

عند I تنفيذه أحصل على هذه الخطة التنفيذ:

PLAN JOIN (C NATURAL,E INDEX (INTEG_160),R INDEX (INTEG_318))

وماذا يعني أن مؤشر Convenio على من لم يستخدم (كل جدول يحتوي على الأرقام القياسية الخاصة به)

وأود أن نفهم على نحو أفضل قليلا حتى أتمكن من تحسين أداء بعض القضايا أواجه مع هذا النظام.

وشكرا.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

وأنا أتفق مع اندريه. إذا convenio.idconvenio ديه الانتقائية منخفضة، والخطة على ما يرام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top