oracle 表字段类型,与业务SQL不合理,导致的隐式转换
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,今天遇到一个生产问题,业务SQL很简单,单表查询,而且表只有三个字段,有个主键ID,而且通过主键ID过滤,业务页面会传一百多个ID过来调用SQL,这个表数据量大小为100多万,但是偏偏这条SQL执行跑
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
指纹采集输出数据库
评论员网络安全思想认识
18种网络安全协议
网络安全专业口号
国企互联网科技
关于网络安全的知识科普
网络安全警示性提示
连接数据库生成txt软件
谣言网络安全处罚
看门狗与网络安全
国家数据库到多大
杭州途特网络技术有限公司
如何查看服务器被攻击
威海微信公众号软件开发外包公司
网络安全事件动态
查询关键字在数据库中出现的频率
数据库 时间 数字
达梦数据库的使用
专科有网络安全专业么
上海周末网络安全培训
阿里巴巴产业数据库论坛
网页游戏服务器租用
cdm数据库编辑器
国家新闻网络安全小组组长
洪山软件开发地址
数据库是什么选择题
周鹏中国篮球数据库
越南软件开发 应届
专科有网络安全专业么
山东阿利郎网络技术有限公司