متى ليس من المناسب استخدام الجداول المشتقة؟
-
01-10-2019 - |
سؤال
هذه لذلك بعد تفاصيل بعض الفوائد في الأداء فيما يتعلق بالجداول المؤقتة المشتقة.
بخلاف الأداء ، ما هي المواقف التي لن تكون الجدول المشتق من أجلها.
إجابة واحدة لكل منشور مع مثال ستكون مفيدة.
المحلول
أفضل أن أفعل الانضمام الذاتي على طاولة مؤقتة من الجدول المشتق.
CREATE TEMPORARY TABLE foo AS SELECT ...;
SELECT ... FROM foo f1 JOIN foo f2 ON ...conditions...;
مقابل استخدام جدول مشتق ، حيث يتعين عليك كتابة الاستعلام بأكمله مرتين:
SELECT ...
FROM (SELECT ...)
JOIN (SELECT ...) ON ...conditions...;
لكن حل آخر هو الاستخدام تعبيرات الجدول المشتركة التي تختلف قليلاً عن الجداول المشتقة:
WITH foo AS (SELECT ...)
SELECT ... FROM foo f1 JOIN foo f2 ON ...conditions...;
شريطة استخدام علامة تجارية من قاعدة البيانات التي تدعم هذا الجملة (Microsoft ، Oracle ، IBM ، PostgreSQL).
نصائح أخرى
قد يكون النطاق واحد. أعتقد أن الجداول المؤقتة يمكن الوصول إليها في المعاملات / العمليات الأخرى ، وما إلى ذلك. تقتصر الجداول المشتقة على الكتلة التي يتم إعلانها فيها.
إذا كان عليك الوصول إلى البيانات في الجدول المؤقت في استفسارات متعددة قد يكون أقل تكلفة لتجنب توليد بيانات درجة الحرارة مرارًا وتكرارًا:
CREATE TEMPORARY TABLE foo AS SELECT ...;
SELECT ... FROM foo WHERE ...conditions...;
-- sometime later
SELECT ... FROM foo WHERE ...different conditions...;