业务SQL中的模糊like条件子句如何才能用上索引?下面这条SQL没有用上索引,消耗资源极多:
select count(1) countNumber from( select cc.CLAIM_ID,ROWNUM from claimcontract cc INNER JOIN GNTSLIP_EXPAN_INF G ON CC.Contract_Id=G.ARRANGEMENT_ID inner join (select C.CONTRACT_ID from contract c where exists( select 1 from CONTRACTROLE CR where CR.CONTR_COMPONENT_ID = C.CONTRACT_ID and CR.CONT_ID = '' and C.END_DT < SYSDATE AND
CR.END_REASON_TP_CD IS NULL AND (CR.CONTR_ROLE_TP_CD BETWEEN 1 AND 3)
) AND C.EXECUTED_DT>=ADD_MONTHS(trunc(SYSDATE), -36)) t on cc.contract_id=t.CONTRACT_ID AND (G.GNTSLIP_NO like 'E%' or G.GNTSLIP_NO like 'W%' or G.GNTSLIP_NO like 'P%' ) )
有一种改善like查询性能的办法,像这种以某个字符开头模糊查询的,可以使用instr函数优化,改成这样的:instr(G.GNTSLIP_NO,'E')=1
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。