关于数据库索引和like的解决方案?

操作系统:aix 5.7db2版本:8.2.7问题现象:操作系统内核用户cpu高80-90%,发生在用户上线时段。监控到的sql语句:select count(*) from xxxx A left outer join xxx B on A.SENTID=B.SENTID left outer join xxxxx C on A.SENTCLASSCODE=C.SENTCLASSCODE left outer join xxxxx...显示全部

操作系统:aix 5.7
db2版本:8.2.7
问题现象:操作系统内核用户cpu高80-90%,发生在用户上线时段。
监控到的sql语句:select count(*) from xxxx A left outer join xxx B on A.SENTID=B.SENTID left outer join xxxxx C on A.SENTCLASSCODE=C.
SENTCLASSCODE left outer join xxxxx Z on A.SENTID=Z.ENTID where 1=1 AND A.SAREACODE LIKE '001008%' AND A.SENTNAME LIKE '%荣创%' and (A.SPREPAREID is nu
ll or A.SPREPAREID='') with ur
像这样有“LIKE '%荣创%'”导致性能问题的,有什么好的解决方案。

收起
参与13

查看其它 1 个回答y18511664518的回答

y18511664518y18511664518技术总监长城超云

你这个语句有几个问题 count()是一个 like ‘%%’ 是一个,完全不可能走索引,还有你sprepareid这个字段 is null ='' ,直接让业务人员优化吧,这种语句还是生产业务常用的语句,简直没法说。

金融其它 · 2017-09-29

回答者

y18511664518
技术总监长城超云
擅长领域: 数据库存储关系型数据库

y18511664518 最近回答过的问题

回答状态

  • 发布时间:2017-09-29
  • 关注会员:3 人
  • 回答浏览:1682
  • X社区推广