使用mybatis 在xml 动态分页查询sqlserver 需要8秒,为啥这么慢

星澄码帝 2018-05-22 06:38:30
<select id="listIMEIInfo" parameterType="com.seamax.salesearch.query.Criteria" resultMap="BaseResultMap">
select top(<![CDATA[ #{mysqlLength} ]]>)
<include refid="Base_Column_List"/>
FROM IMEIInfo as im
WHERE
im.id not in(select top(<![CDATA[ #{mysqlOffset} ]]>) im2.id from IMEIInfo as im2
where 1 = 1
<if test="condition.startYear != null">
and YEAR (im2.create_time) > YEAR (#{condition.startYear}) and YEAR (im2.create_time) < YEAR
(#{condition.endYear})
</if>
and im2.channelId in ( select channelId FROM [PhoneModelConfigSimple] where
1=1
<if test="condition.custId != null and condition.custId!='' ">
and custId = #{condition.custId}
</if>
)
<if test="condition.searchValue != null">
and im2.imei LIKE #{condition.searchValue} or im2.phone_no LIKE #{condition.searchValue} or im2.phone_model LIKE
#{condition.searchValue}
</if>

<if test="orderByClause != null">
order by ${orderByClause}
</if>)
<if test="condition.startYear != null">
and YEAR (im.create_time) > YEAR (#{condition.startYear}) and YEAR (im.create_time) < YEAR
(#{condition.endYear})
</if>
and im.channelId in ( select channelId FROM [PhoneModelConfigSimple] where 1=1
<if test="condition.custId != null and condition.custId != '' ">
and custId = #{condition.custId}
</if>)
<if test="condition.searchValue != null">
and im.imei LIKE #{condition.searchValue} or im.phone_no LIKE #{condition.searchValue} or im.phone_model LIKE
#{condition.searchValue}
</if>

<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
...全文
1449 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2018-05-23
  • 打赏
  • 举报
回复
应该是多个like计算导致
卖水果的net 2018-05-23
  • 打赏
  • 举报
回复
<if test="condition.startYear != null"> and YEAR (im2.create_time) > YEAR (#{condition.startYear}) and YEAR (im2.create_time) < YEAR (#{condition.endYear}) </if> 对列进行了计算。
吉普赛的歌 2018-05-23
  • 打赏
  • 举报
回复
1. 请用 sqlprofiler 捕获你所说的 8 秒慢SQL , 再贴出来; 2. SQL 相关表的记录条数是多少?相关索引? 3. 你的SQL 里面有很多 like , 这种模糊查询一般用不到索引, 效率低下也比较正常。 当然, 你得先贴出运行时完整的SQL(我在上面说的第一步), 方便大家帮你优化。

588

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧