Oracle-Regexp_substr和Instr之间的性能

时间:2018-12-24 08:33:48

标签: performance compare regexp-substr

作为标题,在某些情况下,我看到Regexp_substr比Instr更快,成本更低,而在某些情况下则相反。 我不知道何时应该使用Instr或Regexp_substr,有人可以为我解释一下并告诉我每种方法的好处吗?以下示例:

**Regexp_substr:**

SELECT * FROM tabl1
WHERE 1 = 1
AND col1 IN (
 SELECT regexp_substr(abc,'[^,]+',1,level) AS A
 FROM (
  SELECT 001 abc -- replace with parameter
  FROM DUAL
  )
  CONNECT BY LEVEL <= LENGTH (REGEXP_REPLACE (abc,'[^,]'))+1 );

**Instr:**

SELECT * FROM tabl1
WHERE 1 = 1
AND INSTR (',' || '001' || ',',',' || col1 || ',') > 0 ; 

谢谢!

0 个答案:

没有答案