千家信息网

JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!开发反应[增量库存]功能慢,并
千家信息网最后更新 2026年11月03日JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例

这篇文章主要介绍JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

开发反应[增量库存]功能慢,并反馈查询有指定分区条件,量较小;

1)通过 Oracle DBA常用sql分享 (正在执行的sql) 发现,该SQL的COST>1400000;

2)再通过select * from table(dbms_xplan.display_cursor( 'SQL_ID','0','advanced')); 分析该sql的执行计划和绑定变量情况发现

PARTITION RANGE ALL 分区全扫;---->createtm分区字段传参数了 为啥会全扫?

|

绑定变量中createtm分区条件未显示有传值

|

分区条件createtm 部分有【INTERNAL_FUNCTION 隐含转换函数】;---> 猜测 传参类型和DB字段类型不一致导致分区表全扫;

|

通过DBA_HIST_SQLBIND查到createtm分区条件传参(2017/01/17 14:20:00 -2017/01/17 14:25:00),字段类型为timestamp,而createtm字段为date类型;

总结:

开发在java层用的mybatis框架,把date类型字段转换成timestamp类型【and createtm $gt:=#{params.begintm} and createtm $lt:#{params.endtm}】,出现INTERNAL_FUNCTION 隐含转换,导致及时分区条件createtm传分区条件也被识别成未传变量,导致分区表全扫;

优化后 and createtm>= to_date(#{params.begintm},'yyyy-mm-dd hh34:mi:ss') and createtm< to_date(#{params.endtm},'yyyy-mm-dd hh34:mi:ss')


--补充注意Java中的日期变量需要使用String来存储.

以上是"JAVA,Mybatis,Oracle变量类型与字段类型不一致、分区表全扫的优化示例"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

类型 字段 变量 条件 分区表 一致 示例 内容 篇文章 开发 价值 兴趣 函数 功能 参数 增量 小伙 小伙伴 常用 库存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 广东万易互联网科技有限公司惠州分公司 互联网是第几次科技革命的成果 金融科技创新监管互联网金融 互联网金融公司科技 狮子座互联网科技 赫美联合互联网科技 长亮科技 互联网金融 互联网科技产品 以后互联网后是啥科技 花神(南京)互联网科技有限公司 辽宁互联网新科技 乌苏新华互联网科技做什么的 山东星卡互联网科技有限公司官网 互联网科技实习生岗位 科技互联网行业投资研究 陕西九四连强互联网科技有限公司 科技信息时代互联网发展 广州三三互联网科技有限公司 科技互联网公司两年变化 互联网科技工作委员会 广州互联网科技公司 海南科技产业互联网平台 隆华科技工业互联网 互联网科技实习生岗位职责 宝灵互联网科技有限公司 西安小鹰速贷互联网科技有限公司 互联网企业科技类企业如何做账 江苏互联网科技小贷 互联网的黑科技实验室
0