【问题标题】:Where and how to check that hibernate cache really works在哪里以及如何检查休眠缓存是否真的有效
【发布时间】:2011-12-21 04:28:28
【问题描述】:

我是休眠缓存区的新手。

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

问候, 马辛

【问题讨论】:

    标签: hibernate caching


    【解决方案1】:
    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。缓存提供程序还经常提供 JMX bean,可以询问它们自己的统计信息
    【解决方案2】:

    我发现 nice tool 使用 vizuliaze hibernate (也是缓存)。 另外在这些articles (here is part one) 中有很好的解释休眠缓存是如何工作的(另见相关链接)。 还有一个很好的分析步骤示例。

    无论如何感谢您的回答。

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 2017-03-18
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多