كيف تعرف/تسجيل ما إذا كانت ذاكرة التخزين المؤقت لـ Hibernate 2nd قد تم استخدامها أم لا للاستعلام؟
-
23-09-2019 - |
سؤال
حاليًا ، من أجل التحقق مما إذا كانت ذاكرة التخزين المؤقت لـ Hibernate 2nd تم استخدامها لاستعلام قاعدة البيانات ، أتحقق من سجل SQL الخاص بي (من خلال p6spy أو logSql = صحيح في datasource.groovy) لمعرفة ما إذا كان Grais/Hibernate قد أدى إلى استعداد SQL. وأفترض أنه إذا لم يتم تسجيل الاستعلام ، فقد يعني ذلك أنه تم استخدام ذاكرة التخزين المؤقت.
إنه معقد للغاية بالنسبة لمعلومات بسيطة ، أليس كذلك؟
هل تعرف طريقة بسيطة للحصول على المعلومات وتسجيلها: "تم استخدام ذاكرة التخزين المؤقت مقابل استعلام DB"؟
تعديل: بعد توصيات Pascal ، أضفت هذا trace 'org.hibernate.cache'
إلى تكوين log4j الخاص بي.
نصائح أخرى
الإجابة المختصرة هي أنه عند تمكين تسجيل الاستعلام ، يتم تسجيل كل استعلام.
تتوفر إحصائيات مختلفة عبر SessionFactory.getStatistics()
و Session.getStatistics()
. لا تتوفر تنفيذ الاستعلام و Cache Cache Hit و Miss Counts في SessionStatistics.
في بيئة اختبار ، حيث ليس لديك جلسات متزامنة ، يمكنك إجراء استعلامك القابل للتخزين المؤقت مرتين وتأكيد أن كلاهما SessionStatistics.getQueryCacheHitCount()
و SessionStatistics.getQueryExecutionCount()
زادت فقط من 1.
ال السبات البارفيلر يقدم كل هذه الإحصائيات والسجلات بشكل أكثر فعالية.