`
BUICK
  • 浏览: 21951 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

查询缓存设置

阅读更多
1、在hibernate.cfg.xml中设置如下:
   <property name="show_sql">true</property>
    <property name="jdbc.fetch_size">50</property>
    <property name="jdbc.batch_size">20</property>
    <property name="jdbc.use_scrollable_resultset">false</property>
    <property name="use_outer_join">true</property>
    <property name="max_fetch_depth">1</property>
    <property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.Provider</property>
    <property name="hibernate.cache.use_query_cache">true</property> 


2、在ehcache.xml中设置查询cache如下:
    <cache
        name="com.norteksoft.thiebaut.stat_cache.yearReport"
        maxElementsInMemory="1000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="false"
    />

3、在DAO中设置如下:
    query = session.createQuery(hql.toString(););;
    list = query.setCacheable(true);.setCacheRegion("com.norteksoft.thiebaut.stat_cache.yearReport");.list();;


注:
1、如果在hibernate.cfg.xml中没有设置<property name="hibernate.cache.use_query_cache">true</property>
这一属性,查询缓存将不会起作用;
2、利用查询缓存,速率将有10倍以上的提升,我测试的提升效率是20倍。
分享到:
评论
2 楼 raymond2006k 2008-10-06  
补充一下,楼主漏了写 hbm.xml配置 <cache usage="read-write"/>。
如果不启用二级缓存(VO缓存),那么性能反而会严重下降的。
1 楼 raymond2006k 2008-10-06  
我之前也有关注查询缓存的性能效果问题。
我的实测结果也是大幅提高,但这仅对于未有增删改操作发生的情况。
如果有增删改,那么查询缓存的性能会受到一定影响, 查询执行消耗时间跟修改类操作的频率成正比。 因此,在具体应用中,还要综合考虑业务的修改频率问题。


希望和楼主多交流。Hibernate的查询缓存可能还有一个深层次bug,因此项目中要的想办法解决,不知现在有没有解决。

相关推荐

    MYSQL查询缓存性能问题分析与优化案例(绝对精华)[参照].pdf

    本案例就是一个典型的例子,当一个新引入的2插槽、8核心、基于X64架构的Solaris系统作为MySQL复制从服务器时,由于查询缓存设置过大,反而无法应对高峰时段的复制负载,导致系统在低峰期需要花费很长时间才能追赶上...

    mysql缓存查询和设置

    mysql缓存查询和设置global_query_cache_size

    hibernate一级缓存、二级缓存和查询缓存

    **hibernate一级缓存、二级缓存和查询缓存** 在Java的持久化框架Hibernate中,缓存机制是提高应用程序性能的关键要素。缓存能够减少数据库的访问次数,提高数据读取速度,并且在一定程度上降低了系统的负载。本文将...

    mysql 设置查询缓存

    在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客户端的相应结果。 如果之后接收到一个同样的查询,服务器将从查询缓存中检索结果,而不是再次分析和执行这个同样的查询。 注意:查询缓存绝不返回过期...

    服务器缓存设置 工具

    服务器缓存是提升网站或应用性能...服务器缓存设置和管理是一项细致而重要的工作,需要根据实际业务需求和服务器资源状况灵活调整。正确运用服务器缓存工具,可以显著提升系统效率,为用户提供更快、更稳定的访问体验。

    PHP查询缓存.doc

    【PHP查询缓存】是指在PHP应用程序中,为了提高数据库查询效率和减轻数据库负载,将SQL查询的结果存储起来,下次相同查询时直接读取缓存数据,而不是重新执行查询。这种方式特别适用于那些频繁且静态的数据,可以...

    hibernate开启二级缓存和查询缓存

    在 Hibernate 中,二级缓存和查询缓存是提高应用性能的重要机制。下面将详细介绍如何开启并理解这两个缓存机制。 ### 1. 一级缓存与二级缓存 #### 1.1 一级缓存 一级缓存是 Hibernate 内置的 Session 缓存,它是每...

    释放查询潜力:深度配置MySQL查询缓存

    在 MySQL 的配置文件(通常是 `my.cnf` 或 `my.ini`)中,可以通过设置以下参数来启用查询缓存: ```ini [mysqld] query_cache_type=1 query_cache_limit=2M query_cache_size=64M ``` - `query_cache_type` 设置...

    提高MySql查询性能 - 打开和设置查询缓存 视频教程

    提高MySql查询性能 - 打开和设置查询缓存 视频教程 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等等好多知识

    设置页面缓存Cache

    除了页面级的缓存设置外,还可以对数据源控件进行缓存设置,以进一步提高性能。 - **`ObjectDataSource`控件**:这是一种常用的数据源控件,可以用来连接数据库并执行CRUD操作。通过设置`EnableCaching`属性,可以...

    Hibernate查询缓存及实现.PPT

    要启用查询缓存,需要在`hibernate.cfg.xml`配置文件中进行设置。同时,还需要在实体类的映射文件中配置缓存策略。如果选择Ehcache,还需要提供一个单独的`ehcache.xml`配置文件。在DAO组件中,对Query对象调用`...

    MySQL_my.ini 中文详细说明

    6. 查询缓存设置 query_cache_size = 64M query_cache_limit = 2M 上述两行代码设置了 MySQL 数据库的查询缓存大小和限制。查询缓存用于存储经常使用的查询结果,以提高查询性能。 7. 事务处理设置 transaction_...

    day37 07-Hibernate二级缓存:查询缓存

    今天我们要探讨的是Hibernate的二级缓存,特别是查询缓存这一重要特性。 首先,我们需要理解缓存的概念。缓存是一种存储技术,用于临时存放经常访问的数据,以减少对主存储器(如数据库)的访问,从而提高系统性能...

    面试中缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级怎么解答?.docx

    缓存穿透是指用户查询的数据既不在数据库中也不在缓存中,导致每次请求都直接落到数据库上,降低了缓存的作用。解决缓存穿透可使用布隆过滤器,将所有可能存在的数据哈希到一个位图中,无效的查询会被拦截;另一种...

    缓存问题解决方案&批量查询优化1

    - **缓存空数据**:即使查询结果为空,也将结果存入缓存,设置较短的过期时间,减少对数据库的压力。 - **使用布隆过滤器(Bloom Filter)**:在查询数据前先通过布隆过滤器检查,减少对数据库的无效查询。布隆...

    MySQL缓存研究

    研究结论通常会总结优化缓存对MySQL性能提升的具体效果,指出哪些策略最有效,以及在特定工作负载下如何选择最佳的缓存设置。 7. 总结 通过对MySQL缓存的深入研究,我们可以理解缓存在数据库性能中的关键作用,学习...

    Hibernate-二级缓存总结 开发技术 - Java.zip

    二级缓存分为几个类别,包括查询缓存、集合缓存、实体缓存等。查询缓存会缓存SQL查询的结果,避免重复执行相同的查询;集合缓存存储关联的集合数据,减少加载关联对象时的数据库访问;实体缓存则是缓存单个实体对象...

    cache设置缓存数据,可直接运行

    这些框架提供了便捷的方式来管理和操作缓存,包括添加、删除、更新和查询数据。在给定的文件中,可能使用了Spring Boot集成的Spring Cache,这是一个轻量级的缓存抽象层,允许开发者在不改变代码的情况下切换不同的...

    PHP 缓存 PHP 缓存

    1. **数据库查询缓存:**这是一种专门针对数据库查询结果的缓存机制。通过缓存查询结果,可以避免对同一查询的多次执行,减少数据库负载。 2. **页面缓存:**页面缓存技术可以将整个网页或其部分静态化,从而减少...

Global site tag (gtag.js) - Google Analytics