网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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直接被隐式转换后,便走不了索引了, 直接走了全表。这个问题后续才发现,也是因为业务不关注,在表数据日益上涨之后,性能问题日益凸显才被抛出来


文章名称:oracle表字段类型,与业务SQL不合理,导致的隐式转换
文章起源:http://bjjierui.cn/article/gosspo.html

其他资讯