如何使用反向索引优化like语句
原SQL如下:
pcc_cust_infonew表索引如下< /p>
执行设计如下:
这里可以看到SQL执行耗时3.96秒,执行计划中还可以找到PCC_CUST_INFONEW表。 TABLE ACCESS FULL 扫描返回大约 380k 数据,然后使用 INDEX UNIQUE SCAN 和 PCC_CUST_CONTRACTCOMPANY 表主键 PK_PCC_CUST_CONTRACTCOMPANY。这里的缓慢主要是由于执行计划中的步骤3造成的。
我们都知道,在Oracle中,使用like时,索引如果是最后一个%(如'138%')可以使用,但如果是第一个%(如'138%')则不能使用索引“%138”)。正常使用索引。那么如何c顶部%也使用索引?答案是利用反向索引进行优化。
优化如下:
修改索引
调整SQL
p>经过上述调整后,SQL执行效率提升至毫秒级。
调整后的执行计划如下:
使用反向函数索引后,我们如何使用索引呢?好吧,当你看到执行计划下的谓词信息时,你肯定就知道答案了。
其实就是利用reverse函数index来反转索引数据,其中在 SQL 中反转条件中的值,从而将第一个 % 更改为最后一个 %。
这篇《如何利用反向索引优化like语句》的文章就分享到这里。希望以上内容能够对大家有所帮助,让大家能够学到更多的知识。 ,如果您觉得文章不错,请分享以便更多的人可以看到。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何使用反向索引优化like语句