开发者社区> 问答> 正文

业务SQL中的模糊like条件子句如何才能用上索引?

业务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%' ) )

展开
收起
晓风瑟瑟 2021-10-12 17:28:19 582 0
1 条回答
写回答
取消 提交回答
  • 有一种改善like查询性能的办法,像这种以某个字符开头模糊查询的,可以使用instr函数优化,改成这样的:instr(G.GNTSLIP_NO,'E')=1

    2021-10-16 15:44:25
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载