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

时间:2011-11-03 13:18:09

标签: hibernate caching

我是hibernate缓存区的新手。

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

2 个答案:

答案 0 :(得分:20)

  1. 您可以启用Hibernate statistics generationhibernate.generate_statistics属性设置为true。然后,您可以通过SessionFactory.getStatistics()监控缓存命中/未命中计数。

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

  2. 这取决于很多因素。请参阅21.2. The Second Level Cache21.4. The Query Cache

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

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

答案 1 :(得分:6)

我发现nice tool vizuliaze hibernate用法(也是缓存)。 另外在这些articles (here is part one)中有很好的解释,hibernate缓存是如何工作的(另请参阅相关链接)。 分析步骤也有很好的例子。

无论如何,谢谢你的回答。