Знание при попадании в базу данных против кеша - PullRequest
2 голосов
/ 19 февраля 2010

Учитывая все особенности Hibernate и различные стратегии кэширования, как узнать, приводит ли определенная операция к физическому обращению к базе данных или из кеша?

Ответы [ 3 ]

4 голосов
/ 19 февраля 2010

Традиционно вы будете использовать встроенную запись в кэш Hibernate и выполнять профилирование во время разработки для настройки всего этого, пока не получите ожидаемое поведение. Чтобы активировать ведение журнала кэша, измените уровень журнала, например, при использовании log4j.xml:

<logger name="org.hibernate.cache">
   <level value="DEBUG" />
</logger>

Обратите внимание, что я не рекомендую использовать это на рабочей платформе (это может быть очень многословно и, следовательно, может замедлить выполнение).

Для получения более подробной информации см. Ведение журнала документации.

1 голос
/ 19 февраля 2010

Статистика Hibernate должна рассказать вам все, что вам нужно знать:

Включение: Справочник по ядру Hibernate

Использование: Hibernate: Использование статистики Hibernate при оптимизации запросов

API: org.hibernate.stat.Statistics

0 голосов
/ 19 февраля 2010

Я не совсем уверен, но я бы попытался увеличить уровень регистрации в регистраторах org.hibernate и посмотреть, регистрируется ли эта информация (скорее всего, на уровне «отладки» или ниже).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...