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

操作系统: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

2同行回答

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

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

收起
金融其它 · 2017-09-29
chengzuqiaochengzuqiao系统架构师江西省农村信用社
like %keyword, like %keyword% 索引失效,会使用全表扫描。一般可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。例如like keyword% 索引就有效。显示全部

like %keyword, like %keyword% 索引失效,会使用全表扫描。一般可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。例如like keyword% 索引就有效。

收起
银行 · 2017-09-30

提问者

liujiacai
其它广州大厦
擅长领域: 数据库云计算服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-09-29
  • 关注会员:3 人
  • 问题浏览:2197
  • 最近回答:2017-09-30
  • X社区推广