في أي الحالات يمكن INNER JOIN (SELECT ... لا يمكن إعادة كتابتها باستخدام الجدول المؤقت

StackOverflow https://stackoverflow.com/questions/1443927

  •  22-07-2019
  •  | 
  •  

سؤال

أنا أستخدم GridSQL حيث أواجه بعض مشكلات الأداء عندما يظهر نمط SQL INNER JOIN (SELECT.لذلك أفكر في إعادة كتابة كل هذه الاستعلامات في استعلامين، أحدهما ينشئ جدولًا مؤقتًا باستخدام عبارة التحديد الدقيقة والاستعلام الآخر ينضم إلى الجدول المؤقت، وبالتالي فإن النمط سيكون INNER JOIN temp_table (...) بدلاً من ذلك.

في أي الحالات لن ينجح هذا؟كما قد تظن، آمل ألا أحصل على إجابات لهذا السؤال.;)

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

المحلول

والمرة الوحيدة فرعي حدد لا يمكن بسهولة أن قطعت في جدول مؤقت هو عندما يحيل الى الحقول في الجدول الخارجي.

ل"... INNER JOIN (SELECT ..." أشك عملتم هذه المسألة (أو ما اذا كان من الممكن حتى، وأنا لا أذكر من أي وقت مضى في محاولة منه)، حيث يجب عليك فقط أن يشير إلى الحقول من الجدول الأول في الانضمام المعايير.

نصائح أخرى

لا أعتقد أن الجدول المؤقت سوف يسرع استفساراتك!بدلا من ذلك يجب عليك تحسين استفساراتك.أشياء تستطيع فعلها:

  • قم بتصفية السجلات قبل ضمها إلى مجموعات السجلات الأخرى
  • تحديد الفهارس المناسبة

-بافل

<اقتباس فقرة>   

في الحالات التي يمكن أن صلة داخلية (SELECT   ... لا يمكن إعادة كتابة باستخدام جدول مؤقت

وإذا كان الاستعلام كنت تقوم باستبدال مع جدول مؤقت يمكن أن يؤدي إلى مجموعة نتائج ضخمة، وأود أن تجنب استخدام جدول مؤقت. ان النفقات العامة توليد أنه ينفي أي مكسب ممكن.

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