كيف يعمل التخزين المؤقت للاستعلام على تحسين الأداء في Nhibernate؟

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

  •  23-09-2019
  •  | 
  •  

سؤال

كيف يعمل التخزين المؤقت للاستعلام وكيف يحسن الأداء في Nhibernate؟

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

المحلول

عندما يتم تخطيط استفسار ، سوف يقوم nhibernate بتخزين معرفات الكيانات الناتجة عن الاستعلام.

الأهم من ذلك ، أنه لا يخدع الكيانات نفسها - فقط هوية. هذا يعني أنك من المؤكد أنك تريد التأكد من أن هذه الكيانات يتم تعيينها أيضًا لتكون قابلة للتخزين في ذاكرة التخزين المؤقت من المستوى الثاني. بخلاف ذلك ، ستحصل NHIBERATE على معرفات الكيانات من ذاكرة التخزين المؤقت للاستعلام ، ولكن بعد ذلك يُجبر على الذهاب إلى قاعدة البيانات للحصول على الكيانات الفعلية. يمكن أن يكون ذلك أكثر تكلفة من مجرد الذهاب إلى قاعدة البيانات في المقام الأول!

مهم أيضًا: يتم تخزين الاستعلامات مؤقتًا استنادًا إلى قيم SQL والمعلمة الدقيقة. أي اختلافات في أي من هذين تعني أن قاعدة البيانات سيتم ضربها. لذلك ربما تريد فقط تخزين هذه الاستعلامات التي لديها تباين ضئيل في مدخلاتها.

نصائح أخرى

عندما تقوم بتمكين التخزين المؤقت ، سيقوم Nhibernate بتخزين نتائج الاستعلام في مكان ما في الداخل عند تنفيذ الاستعلام. عندما تحاول تنفيذ الاستعلام باستخدام نفس المعلمات مرة أخرى ، ستحصل على نتائج من ذاكرة التخزين المؤقت ، وليس من قاعدة البيانات ، وبالطبع أنها أسرع بكثير! ولكن احذر من أن التطبيقات الأخرى يمكنها تعديل قاعدة البيانات في الخلفية! لكن Nhibernate يمكنه تحديث ذاكرة التخزين المؤقت.

باستخدامه ، لا يحتاج nhibernate إلى الوصول إلى تخزين البيانات ، فإنه يصل إلى ما هو في ذاكرة التخزين المؤقت.

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