`

SQL Ibatis配置优化

阅读更多
    参数名称  
     参数说明  
       
    cacheModelsEnabled  
     是否启动ibatis中的缓存功能。  
       
    enhancementEnabled  
     是否需要POJO启动Java字节码增强功能,可以提升getter/setter的调用效能避免Java反射所带来的性能开销。  
       
    lazyLoadingEnabled  
     是否同时Lazy Loading带来极大的性能提升。  
       
    useStatementNamespaces  
     是否使用 domain xml 文件中 namespace 别名配置。  
       
    maxRequests  
     最大并发请求数(Statemetn数)。  
       
    maxTransactions  
     最大并发事务数  
       
    maxSessions  
     最大Session数,当前最大允许的并发 SqlMapCliect数  
       
    maxSessions  
     须界于 maxTransactions和maxRequests之间进行配置  
       
    根据自己的多次实践证明,发现这些配置参数的选择与数值将对系统的影响是很大的。  
    经过多次摸索,按照以下配置参数进行配置可以将ibatis的性能进行提升。仅供参数,还需要根据您自己的实 际情况来界定。  
    具体配置参数如下:  
    <sqlMapConfig>  
      
    <settings cacheModelsEnabled="true"   
                         lazyLoadingEnabled="true"  
                        enhancementEnabled="true"  
                        errorTracingEnabled="true"   
                        maxSessions="1024"   
                        maxTransactions="512"  
                        maxRequests="2048"  
                        useStatementNamespaces="true" />  

 

    <sqlMapConfig>  
    <!--  
        参数说明:  
        cacheModelsEnabled:  
        启用或禁用SqlMapClient的所有缓存model。调试程序时使用。  
        enhancementEnabled:  
        启用或禁用运行时字节码增强,以优化访问Java Bean属性的性能,同时优化延迟加载  
        的性能。  
        lazyLoadingEnabled:  
        启用或禁用SqlMapClient的所有延迟加载。调试程序时使用。  
        maxRequests:  
        同时执行SQL语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。  
        不同的DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是  
        maxTransactions的10倍,并且总是大于maxSessions和maxTranactions。  
        减小这个参数值通常能提高性能。  
        maxSessions:  
        同一时间内活动的最大session数。一个session可以是代码请求的显式session,  
        也可以是当线程使用SqlMapClient实例(即执行一条语句)自动获得的session。  
        它应该总是大于或等于maxTransactions并小于maxRequests。减小这个参数值通常能  
        减少内存使用。  
        maxTransactions:  
        同时进入SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞  
        直到另一个线程退出。不同的DBMS有不同的限制值,但任何数据库都有这些限制。这个  
        参数值应该总是小于或等于maxSessions并总是远远小于maxRequests。减小这个参数值  
        通常能提高性能。  
        useStatementNamespaces:  
        如果启用本属性,必须使用全限定名来引用mapped statement。Mapped statement的  
        全限定名由sql-map的名称和mapped-statement的名称合成,例如  
        queryForObject(“sqlMapName.statementName”)  
        -->  
        <settings cacheModelsEnabled="true"  
                  enhancementEnabled="false"  
                  lazyLoadingEnabled="false"  
                  maxRequests="3000"  
                  maxSessions="3000"  
                  maxTransactions="3000"  
                  useStatementNamespaces="false"/>  
    <!--  
        添加sql map文件。当一个SQL Map文件太大的时候,可以拆分成若干个小的文件。  
        建议按照模块拆分sql map文件,比如sqlmap-mapping-module-a.xml,  
        sqlmap-mapping-module-a.xml。  
        命名规范为:sqlmap-mapping-模块名.xml(全部小写)  
        -->  
        <sqlMap resource="sqlmap-mapping.xml"/>  
         <sqlMap resource="sqlmap-mapping-common.xml"/>  

 

分享到:
评论

相关推荐

    ibatis的一个CRUD

    从配置文件中优化sql语句。 (2) ibatis可以进行细度优化。可以针对一个表中一个或几个字段进行更新等操作。Hibernate会更新所有的字段。 (3) ibatis可维护性高一点。 2.Ibatis需要的jar包 (1) ibatis-2.3.4.726....

    ibatis 开发指南(pdf)

    系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高 度优化的SQL 语句(或存储过程)才能达到系统性能设计指标。 面对这样的需求,再次举起Hibernate 大刀,却发现刀锋不再锐利,甚至...

    ibatis 开发指南

    具体的SQL 需要程序员编写,然后通过映 射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过...

    IBatisNet完整项目源码(含数据库)

    系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 2.iBATIS之于小型、简单系统:非常适用 iBATIS自己就很小并且简单 iBATIS不会...

    IBatisNet.DataMapper 之简单三层

    系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 2.iBATIS之于小型、简单系统:非常适用 iBATIS自己就很小并且简单 iBATIS不会对...

    mybatis_day01.docx

    相比于hibernatehibernate为全自动化,配置文件书写之后不需要书写sql语句,但是欠缺灵活,很多时候需要优化; mybatis为半自动化,需要自己书写sql语句,需要自己定义映射。增加了程序员的一些操作,但是带来了设计...

    Spring面试题

    ☆ Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 ☆ Spring Web 模块:...

    最新Java面试宝典pdf版

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么...

    Java面试宝典2010版

    11、iBatis与Hibernate有什么不同? 12、写Hibernate的一对多和多对一双向关联的orm配置? 9、hibernate的inverse属性的作用? 13、在DAO中如何体现DAO设计模式? 14、spring+Hibernate中委托方案怎么配置? 15、...

    Java面试笔试资料大全

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么...

    JAVA面试宝典2010

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么...

    Java面试宝典-经典

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么...

    java面试题大全(2012版)

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么...

    Java面试宝典2012版

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案...

    java面试宝典2012

    11、iBatis与Hibernate有什么不同? 133 12、写Hibernate的一对多和多对一双向关联的orm配置? 134 9、hibernate的inverse属性的作用? 134 13、在DAO中如何体现DAO设计模式? 134 14、spring+Hibernate中委托方案怎么...

    Java面试宝典2012新版

    11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续...

Global site tag (gtag.js) - Google Analytics