oracle 表字段类型,与业务SQL不合理,导致的隐式转换
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天遇到一个生产问题,业务SQL很简单,单表查询,而且表只有三个字段,有个主键ID,而且通过主键ID过滤,业务页面会传一百多个ID过来调用SQL,这个表数据量大小为100多万,但是偏偏这条SQL执行跑
千家信息网最后更新 2026年10月31日oracle 表字段类型,与业务SQL不合理,导致的隐式转换
今天遇到一个生产问题,业务SQL很简单,单表查询,而且表只有三个字段,有个主键ID,而且通过主键ID过滤,业务页面会传一百多个ID过来调用SQL,这个表数据量大小为100多万,但是偏偏这条SQL执行跑了15秒,完全影响业务不能使用。
select a,b,c from t where t.id in (1111,222,333,444,555..........)
我一开始并没有去查看表设计,而是直接看了执行计划,
1 alter session set statistics_level=all;
2 执行SQL
3 select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST')
执行计划直接走了全表扫描,而在谓词过滤的信息里有一堆的
to_number(t.id)=1111 or to_number(t.id)=2222 ..............
看到这里立马就猜想到了具体的问题所在,查询T表ID字段,是VARCHAR2类型,而SQL in的是数字类型,SQL直接被隐式转换后,便走不了索引了, 直接走了全表。这个问题后续才发现,也是因为业务不关注,在表数据日益上涨之后,性能问题日益凸显才被抛出来
业务
问题
字段
类型
数据
查询
三个
信息
只有
多个
大小
性能
所在
数字
索引
而是
谓词
页面
影响
猜想
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州为想互联网科技有限公司
金诺互联网科技
深圳科技互联网
中国 科技 互联网
善班互联网科技有限公司
西安互联网科技公司
山东吉时兔互联网科技有限公司
互联网汽车科技小镇
佳云科技和互联网广告
互联网科技公司实习生
徐州市互联网科技有限公司
锡山区互联网智能科技产品供应
江苏互联网智能科技软件
富国互联网金融科技混合基金
神州科技互联网有限公司
互联网科技手抄报图片
玉溪新华互联网科技怎么选
北京品多多互联网科技有限公司
青岛互联网科技园
互联网 科技节活动 微视频大赛
瑰夏咖啡
耶加雪菲
互联网科技公司排名
迪茉互联网科技
壕鑫互联网络科技
洛阳昕诺飞互联网科技有限公司
广州新华互联网科技学校电竞方面
杭州披云加互联网科技有限公司
云鲸互联网络科技有限公司
互联网科技创新创业项目