关于数据库索引和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 个回答chengzuqiao的回答

chengzuqiaochengzuqiao系统架构师江西省农村信用社

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

银行 · 2017-09-30

回答者

chengzuqiao
系统架构师江西省农村信用社
擅长领域: 存储备份软件定义存储

chengzuqiao 最近回答过的问题

回答状态

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