في أي الحالات يمكن INNER JOIN (SELECT ... لا يمكن إعادة كتابتها باستخدام الجدول المؤقت
-
22-07-2019 - |
سؤال
أنا أستخدم GridSQL حيث أواجه بعض مشكلات الأداء عندما يظهر نمط SQL INNER JOIN (SELECT.لذلك أفكر في إعادة كتابة كل هذه الاستعلامات في استعلامين، أحدهما ينشئ جدولًا مؤقتًا باستخدام عبارة التحديد الدقيقة والاستعلام الآخر ينضم إلى الجدول المؤقت، وبالتالي فإن النمط سيكون INNER JOIN temp_table (...) بدلاً من ذلك.
في أي الحالات لن ينجح هذا؟كما قد تظن، آمل ألا أحصل على إجابات لهذا السؤال.;)
المحلول
والمرة الوحيدة فرعي حدد لا يمكن بسهولة أن قطعت في جدول مؤقت هو عندما يحيل الى الحقول في الجدول الخارجي.
ل"... INNER JOIN (SELECT ..." أشك عملتم هذه المسألة (أو ما اذا كان من الممكن حتى، وأنا لا أذكر من أي وقت مضى في محاولة منه)، حيث يجب عليك فقط أن يشير إلى الحقول من الجدول الأول في الانضمام المعايير.
نصائح أخرى
لا أعتقد أن الجدول المؤقت سوف يسرع استفساراتك!بدلا من ذلك يجب عليك تحسين استفساراتك.أشياء تستطيع فعلها:
- قم بتصفية السجلات قبل ضمها إلى مجموعات السجلات الأخرى
- تحديد الفهارس المناسبة
-بافل
في الحالات التي يمكن أن صلة داخلية (SELECT ... لا يمكن إعادة كتابة باستخدام جدول مؤقت
اقتباس فقرة>وإذا كان الاستعلام كنت تقوم باستبدال مع جدول مؤقت يمكن أن يؤدي إلى مجموعة نتائج ضخمة، وأود أن تجنب استخدام جدول مؤقت. ان النفقات العامة توليد أنه ينفي أي مكسب ممكن.