在哪里以及如何检查hibernate缓存是否真的有效

Mar*_*cki 30 caching hibernate

我是hibernate缓存区的新手.

  1. 检查缓存是否真的有效的最简单方法是什么?
  2. 当缓存打开时,hibernate是否会生成相同的sql语句?
  3. 它应该是存储数据(二级缓存)的文件系统中的任何文件夹/文件吗?
  4. 如何检查当前使用的缓存量?

此致,Marcin

axt*_*avt 21

  1. 您可以启用Hibernate统计信息生成设置hibernate.generate_statistics属性true.然后,您可以通过监视缓存命中/未命中计数SessionFactory.getStatistics().

    此外,启用SQL日志记录时,您可以通过存在或不存在特定SQL查询来分析缓存行为.

  2. 这取决于很多因素.见21.2.二级缓存21.4.查询缓存

  3. 它取决于缓存提供程序及其配置.例如,可以将EhCache配置为溢出到磁盘.

  4. SessionFactory.getStatistics().getSecondLevelCacheStatistics() 提供此信息.

  • +1.缓存提供程序通常还提供可以请求其自己的统计信息的JMX bean (2认同)

Mar*_*cki 6

我找到了很好的工具 vizuliaze hibernate用法(也缓存).另外在这些文章中(这里是第一部分)有很好的解释,hibernate缓存是如何工作的(另请参阅相关链接).分析步骤也有很好的例子.

无论如何,谢谢你的答案.