Как знать/регистрировать, в спящем режиме ли, кэш 2-го уровня использовался или не для запроса?

В настоящее время, чтобы проверить, использовался ли Быть в спящем режиме кэш 2-го уровня для запроса Базы данных, я проверяю свой журнал SQL (через p6spy или logSql=true в Datasource.groovy), чтобы видеть, инициировал ли Grais/Hibernate SQL-запрос. И я предполагаю, что, если запрос не был зарегистрирован, это могло бы означать, что кэш использовался.

Это довольно сложно для простой информации, не так ли?

Вы знаете простой способ получить и зарегистрировать информацию: "Кэш использовался по сравнению с запросом DB, был инициирован"?

Править: В соответствии с рекомендациями Паскаля, я добавил это trace 'org.hibernate.cache' к моей log4j конфигурации.

12
задан Pascal Thivent 2 May 2010 в 16:58
поделиться

2 ответа

Вы можете активировать org.hibernate.cache category для регистрации всей активности кэша второго уровня. Для этого (согласно Grails FAQ) отредактируйте файл Config.groovy. Найдите строку с:

hibernate = "off"

и замените ее на:

hibernate.cache = "trace,stdout"
6
ответ дан 2 December 2019 в 21:43
поделиться

Короткий ответ: когда включено ведение журнала запросов, каждый запрос регистрируется.

Различные статистические данные доступны через SessionFactory.getStatistics () и Session.getStatistics () . Выполнение запроса и счетчики попаданий и промахов в кэше запросов недоступны в SessionStatistics.

В тестовой среде, где у вас нет одновременных сеансов, вы можете выполнить свой кэшируемый запрос дважды и подтвердить, что оба из SessionStatistics.getQueryCacheHitCount () и SessionStatistics.getQueryExecutionCount () только увеличился на 1.

Профилировщик Hibernate наиболее эффективно представляет всю эту статистику и журналы.

6
ответ дан 2 December 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: