regexp_like的性能不佳

时间:2018-10-22 04:00:19

标签: oracle regexp-like

作为标题,我在oracle SQL查询中使用Regexp_like,但是性能非常糟糕。 我有以下代码:

SELECT ID, Name, Department, PhoneNumber, Address
FROM DPT.DP_vEmployee --vEmployee is a view
WHERE ID = :p_ID
AND REGEXP_LIKE(upper(Address), upper(:p_Address));

我填写并运行了此查询,它返回了近6s的484条记录。然后,在这种情况下,我尝试使用LIKE操作:

SELECT ID, Name, Department, PhoneNumber, Address
FROM DPT.DP_vEmployee --vEmployee is a view
WHERE ID = :p_ID
AND (upper(address) LIKE upper('%' || :p_address || '%'));

在这种情况下,结果返回484条记录的1.5秒。虽然它减少了很多,但并不能令我满意。

还有其他解决方案可以使它更快吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

不是在条件列和模式上使用“ upper”,而是尝试将regexp_like与“ i”不区分大小写的匹配一起使用。