حول مطابقات الذاكرة المخبئية

عند تمكين التخزين في الذاكرة المخبئية، يتم تقييم كل استعلام لتحديد إذا ما كان مؤهلاً لمطابقة الذاكرة المخبئية.

تعني مطابقة الذاكرة المخبئية أن Oracle Analytics Cloud تمكن من استخدام الذاكرة المخبئية للإجابة عن الاستعلام ولم يلجأ إلى قاعدة البيانات على الإطلاق. يمكن أن يستخدم Oracle Analytics Cloud الذاكرة المخبئية للاستعلام للإجابة عن الاستعلام بمستوى التجميع ذاته أو مستوى أعلى.

تحدد العديد من العوامل إذا ما كانت الذاكرة المخبئية تحتوي على مطابقة. يصف الجدول أدناه هذه العوامل.

معامل أو قاعدة الوصف

يجب أن تتطابق مجموعة فرعية من الأعمدة في قائمة SELECT

يجب أن تكون كل الأعمدة في قائمة SELECT لاستعلام جديد موجودة في الاستعلام بالذاكرة المخبئية أو للتأهل للمطابقة ذاكرة مخبئية، وإلا يجب أن يكون من الممكن احتسابها من الأعمدة في الاستعلام.

توضح هذه القاعدة الحد الأدنى من المتطلبات لمطابقة الذاكرة المخبئية، لكن لا يضمن الالتزام بهذه القاعدة مطابقة الذاكرة المخبئية. وتنطبق القواعد الأخرى الواردة في هذا الجدول كذلك.

يمكن أن تتكون الأعمدة في قائمة SELECT من التعبيرات الموجودة في الأعمدة للاستعلامات بالذاكرة المخبئية

يمكن أن يحتسب Oracle Analytics Cloud التعبيرات في النتائج بالذاكرة المخبئية للإجابة عن الاستعلام الجديد، لكن يجب أن تكون كل الأعمدة في النتائج بالذاكرة المخبئية. على سبيل المثال، الاستعلام:

SELECT product, month, averageprice FROM sales WHERE year = 2000

مطابقة في الذاكرة المخبئية للاستعلام:

SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000

لأنه يمكن احتساب averageprice من قيمتي dollars وunitsales (averageprice = dollars/unitsales).

ويجب أن تكون عبارة WHERE متطابقة من ناحية الصياغة أو مجموعة فرعية منطقية

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

تكون عبارة WHERE وهي مجموعة فرعية منطقية لاستعلامات بنتائج بالذاكرة المخبئية مؤهلة إذا استوفت المجموعة الفرعية واحدة من المعايير التالية:

  • مجموعة فرعية لقيم قائمة IN. تتأهل الاستعلامات التي تتطلب عناصر أقل من الاستعلامات بالذاكرة المخبئية في قائمة IN لتكون مطابقة ذاكرة مخبئية. على سبيل المثال، الاستعلام التالي:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    مؤهل كمطابقة في الاستعلام بالذاكرة المخبئية التالية:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • يحتوي على قيود OR أقل (لكن متطابقة) من النتائج بالذاكرة المخبئية.

  • يحتوي على مجموعة فرعية منطقية لمقارنة حرفية. على سبيل المثال، يكون التخمين التالي:

    WHERE revenue < 1000

    مؤهلاً كمطابقة في استعلام قابل للمقارنة مع التخمين:

    WHERE revenue < 5000
  • لا توجد عبارة WHERE. في حالة وجود استعلام بلا عبارة WHERE بالذاكرة المخبئية، فستتأهل الاستعلامات التي تستوفي كل قواعد مطابقة الذاكرة المخبئية الأخرى كمطابقة ذاكرة مخبئية بغض النظر عن عبارة WHERE الخاصة بها.

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

SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')

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

يجب أن تكون استعلامات الأبعاد فقط تطابقًا تامًا

إذا كان الاستعلام أبعادًا فقط، فإن هذا يعني أنه لا يتضمن بيانات فعلية أو قياسات، وبالتالي لا تظهر إلا المطابقة التامة بالذاكرة المخبئية في أعمدة العرض بالاستعلامات بالذاكرة المخبئية. يمنع هذا السلوك النتائج الإيجابية الخاطئة عند وجود عدة مصادر منطقية لجدول أبعاد.

يجب أن تكون الاستعلامات ذات وظائف خاصة مطابقة تامة

يجب أن تكون الاستعلامات الأخرى التي تحتوي على وظائف خاصة مثل وظائف السلسلة الزمنية (AGO وTODATE وPERIODROLLING)، ووظائف الحدود والإزاحة مثل (OFFSET وFETCH)، ووظائف العلاقات (ISANCESTOR وISLEAF وISROOT وISSIBLING)، ووظائف التجميع الخارجي، ويجب أن تكون قياسات المرشحات بشكل عام مطابقة تامة مع أعمدة العرض في الاستعلام بالذاكرة المخبئية. في هذه الحالات، يجب أن يكون المرشح أيضًا مطابقًا تمامًا. لقياسات المرشح، إذا كان من الممكن استبدال قياس المرشح كعبارة WHERE، فمن الممكن استخدام الذاكرة المخبئية للمجموعة الفرعية.

يجب أن تتطابق مجموعات الجداول المنطقية

للتأهل كمطابقة ذاكرة مخبئية، يجب أن تحتوي كل الاستعلامات الواردة على الجداول المنطقية نفسها مثل إدخال الذاكرة المخبئية. تتجنب هذه القاعدة حدوث مطابقات خاطئة من الذاكرة المخبئية. على سبيل المثال، منتج SELECT * FROM لا يطابق مبيعات، منتج SELECT * FROM.

يجب أن تطابق قيم متغير الجلسة، بما في ذلك، متغيرات جلسة الأمن

إذا كانت عبارة SQL المنطقية أو عبارة SQL الفعلية تشير إلى أي متغير جلسة، يجب أن تتطابق قيم متغير الجلسة. بخلاف ذلك، لا تكون الذاكرة المخبئية مطابقة.

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

شروط الربط المقابلة

يجب أن تكون نتيجة الجدول المنطقي الذي تم ربطه بطلب استعلام جديد نفس نتائج الذاكرة المخبئية (أو مجموعة فرعية) للتأهل كمطابقة ذاكرة مخبئية.

يجب أن تكون سمة DISTINCT بنفس القيمة

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

يجب أن تحتوي الاستعلامات على مستويات تجميع متوافقة

يمكن أن تستخدم الاستعلامات التي تطلب مستوى مجمعًا من المعلومات النتائج بالذاكرة المخبئية على مستوى تجميع أقل. على سبيل المثال، يطلب الاستعلام التالي الكمية التي تم بيعها على مستوى المورد والمدينة:

SELECT supplier, region, city, qtysold
FROM suppliercity

يطلب الاستعلام التالي الكمية التي تم بيعها على مستوى المدينة:

SELECT city, qtysold
FROM suppliercity

ينتج عن الاستعلام الثاني نتائج في مطابقة ذاكرة مخبئية في الاستعلام الأول.

تجميع إضافي محدود

على سبيل المثال، في حالة إضافة استعلام بالعمود qtysold للذاكرة المخبئية، فسيؤدي طلب RANK(qtysold) إلى عدم مطابقة الذاكرة المخبئية. بالإضافة إلى ذلك، يمكن أن يؤدي استعلام يطلب qtysold على مستوى الدولة إلى مطابقة ذاكرة مخبئية من استعلام يطلب qtysold على مستوى الدولة والمنطقة.

يجب أن تتكون عبارة ORDER BY من الأعمدة في قائمة "تحديد"

في الاستعلامات حيث لا توجد أعمدة "الطلب حسب" في قائمة "تحديد" تحدث أخطاء بالذاكرة المخبئية.

تشخيص مطابقة ذاكرة مخبئية

لتشخيص سلوك مطابقة ذاكرة مخبئية بشكل أفضل، قم بتعيين متغير الجلسة ENABLE_CACHE_DIAGNOSTICS على القيمة 4، كما هو موضح في المثال التالي:

ENABLE_CACHE_DIAGNOSTICS=4