`
liyonghui160com
  • 浏览: 775945 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ibatis传入固定参数提高sql执行效率

阅读更多

 

最近系统访问量有些大,公司的DBA总是找我进行sql优化。

由于要使用商品编号获取商品信息,传入的商品编号个数不一定,sqlserver建立的执行计划也会不一样,这样影响了执行效率。后发现可以使用parameterMap固定传入长度的字符串,这样sqlserver建立的执行计划就是一个了,提高执行效率。代码如下

 

<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace="Account"
xmlns="http://ibatis.apache.org/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    <alias>
        <typeAlias alias="ContentObject" type="DaoProvider.ContentObject,DaoProvider"/>
    </alias>
    <statements>
        <select id="GetWareSortByWids" parameterMap="Widsjoin" resultClass="Product">          

select Wid,Wname from ware(nolock) where wid in (?)

            </select>
    </statements>
    <parameterMaps>
        <parameterMap id="Widsjoin" class="string">
                  <parameter property="value" dbtype="varchar" type="string" direction="Input" size="8000"/>
            </parameterMap>
    </parameterMaps>

</sqlMap>

 

经过测试改为此种之后减少数据库预编译的次数,有效的提高了sql的执行效率,执行效率至少提高30%。

本人亲自测试。

分享到:
评论

相关推荐

    iBatis的动态SQL语句

    iBatis(现在通常被称为MyBatis)提供了一套强大的动态SQL功能,可以帮助开发者灵活地构建SQL语句,极大地提高了开发效率和代码的可维护性。 #### 一、基本概念 iBatis框架中的动态SQL主要通过XML映射文件来实现,...

    ibatis实现原理解析

    4. 高效性能:由于SQL语句直接由数据库执行,减少了中间层的处理,提高了执行效率。 总结来说,Ibatis通过提供灵活的SQL映射机制,实现了数据库操作的便捷和高效。它的核心在于SQL映射文件、映射器接口、SqlSession...

    Ibatis常用sql语句

    Ibatis可以让你直接编写原生态SQL,可以严格控制SQL执行性能,灵活度极高,尤其适合对SQL有特殊需求的项目。 ### SQL语句详解 #### 1. 删除操作:基于时间戳删除成员访问日志 ```xml delete from ...

    Ibatis

    2.3 参数绑定:调用 SqlSession 的方法时,传入参数对象或 Map,Ibatis 会自动将参数映射到 SQL 语句中。 2.4 结果处理:查询操作返回的结果会被自动映射到 Java 对象,更新操作返回受影响的行数。 **3. 动态 SQL*...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    例如,`DynamicSqlMapClient`类支持动态SQL Map的执行,它可以根据传入的参数动态修改SQL语句,避免了大量的条件分支代码。 此外,iBATIS还提供了一些辅助工具,如`ParameterMap`用于管理SQL语句的输入参数,`...

    ibatis基本操作数据库

    3. 执行SQL:调用SqlSession的selectList、selectOne、insert、update或delete方法,传入Mapper接口方法的名称和参数。 4. 处理结果:如果是查询操作,返回的结果会被自动映射为Java对象;如果是增删改操作,返回受...

    iBATIS-SqlMaps-2_cn.rar

    3. 动态SQL:iBATIS支持动态构建SQL语句,可以根据传入的参数灵活地调整查询条件。这在处理条件复杂的查询时非常有用,避免了编写大量硬编码的SQL语句。 4. 事务管理:iBATIS提供了事务管理功能,可以在应用级别...

    ibatis.Net

    这使得传入参数和SQL语句中的占位符之间可以灵活对应,降低了编写SQL的复杂度。 5. **结果集映射**:通过配置文件,你可以定义如何将数据库查询结果映射到.NET对象,支持一对一、一对多、多对一等多种映射关系,...

    ibatis +sql2005 一个小项目

    3. **动态SQL**:iBATIS支持动态SQL,可以通过条件标签(如`if`, `where`, `choose`, `when`, `otherwise`等)来构建灵活的SQL语句,根据实际传入参数决定SQL的结构。 4. **接口绑定**:在Java代码中,我们可以创建...

    ibatis入门

    在 `select` 标签中,你可以使用 `&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;` 和 `&lt;where&gt;` 等标签来构建动态 SQL,根据传入参数的不同组合生成不同的 SQL 语句。 5. **单对象查询** 当需要查询单个对象时,可以...

    iBATIS SQL Maps

    4. 调用方法:在业务逻辑中,通过`UserMapper`接口调用`selectUserById`方法,传入用户ID,iBATIS会执行对应的SQL语句并返回结果。 六、最佳实践 1. 保持SQL Map整洁:每个SQL语句应有明确的ID,避免重复和混淆。 2...

    ibatis官方中文文档

    iBATIS提供了一个灵活的映射框架,可以将SQL查询结果映射到Java对象上,同时也支持动态SQL,极大地提高了开发效率。 **iBATIS-SqlMaps-2_cn.pdf** 这份文档详细介绍了iBATIS的核心概念,如SqlMapConfig.xml配置...

    ibatIS调用存储过程

    ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...

    iBATIS-SqlMaps-2-Tutorial_en.rar

    通过使用动态SQL,可以在运行时根据传入的参数来构造和执行SQL,提高了灵活性。 4. **参数映射和结果映射**:iBATIS允许你定义参数和结果集的映射,将Java对象与数据库记录关联起来。你可以使用简单的类型(如字符...

    ibatis jar包.zip

    1. **动态SQL**:iBATIS允许在SQL映射文件中编写条件语句,使得SQL可以根据传入的参数动态生成,大大增强了SQL的灵活性。 2. **映射文件**:XML配置文件定义了SQL语句和Java对象之间的映射关系,包括插入、更新、...

    iBatis操作MySQL增删改查

    iBatis会自动处理主键生成和参数绑定,提高开发效率。 2. **删除记录**:删除操作分为删除指定记录和删除全部记录。使用`&lt;delete&gt;`标签定义删除语句,可以按ID或其他条件进行删除。在Java代码中,调用Mapper接口的...

    根据表生成ibatis的sqlMap文件

    在Java开发中,iBatis是一个非常流行的持久层框架,它将SQL语句与Java代码分离,提高了代码的可维护性和可读性。SQLMap文件是iBatis的核心部分,它定义了数据库操作的SQL语句及其参数映射。本篇文章将详细探讨如何...

    ibatis-2.3.

    开发者可以在这些文件中编写动态 SQL,使得 SQL 语句可以根据传入的参数灵活变化。 2. **Data Mapper API**: 这是 iBATIS 提供的主要接口,允许开发者通过编程方式执行 SQL 映射文件中的查询。主要的接口包括 `...

Global site tag (gtag.js) - Google Analytics