利用反向索引优化类语句的方法

前言

在某些情况下,开发人员经常使用类似于实现一些业务需求。当我们使用类似的时候,我们都知道使用%之前(比如% 111)不能使用索引。因此,如何优化这种SQL是一个例子。

原始SQL如下所示:


的pcc_cust_infonew表指标如下


设计的执行情况如下:


在这里你可以看到SQL 3.96秒,执行计划也可以在pcc_cust_infonew表访问表的全扫描发现,返回380k,pcc_cust_contractcompany和pk_pcc_cust_contractcompany去索引唯一扫描主键的表,这里主要是在这3步的执行计划。

我们也知道,在Oracle中,如果使用类似的方法,如果它是后面的%(像138%),它可以被索引,如果它是前%(像% 138),它不能正确地使用索引。那么如何使前面的%也可以在索引中使用,答案是反向索引可以用来优化它。

优化如下:



修改索引


调整SQL


通过以上调整,SQL执行效率提高到毫秒级。


调整后的实施计划如下:


使用反向函数索引后如何使用索引当您在执行计划下看到谓词信息时,您将知道答案。


事实上,使用反向函数索引反转索引数据,反转SQL中的WHERE条件值,以便将原来的%更改为后面的%。

总结

以上是使用反向索引优化类语句的所有内容。我希望这些内容能帮助你学习或工作。如果有任何疑问,你可以留言。