如何在oracle sql查询中优化包含

时间:2015-07-09 12:58:31

标签: oracle query-optimization contains

我需要在这样的查询中使用oracle Contains函数:

select *
  from iindustrialcasehistory B
  where CONTAINS(B.ItemTitle, '%t1%') > 0 OR
        CONTAINS(B.ItemTitle, '%t2%') > 0

我已经为ItemTitle列定义了上下文索引,但执行时间大约是一分钟!而我需要它在不到一秒的时间内执行! 感谢先进的任何执行时间减少指南!

1 个答案:

答案 0 :(得分:0)

包含对字符串中所有子字符串外观的搜索,这就是为什么更好地使用instr(),因为它只搜索第一次出现的子字符串,它应该更快。

然后你可以为函数Instr(B.ItemTitle,' t1')+ Instr(B.ItemTitle,' t1')构建索引。

并使用此功能值>之后的查询中为0。 您可以通过instr函数here查看有关使用索引的更多详细信息。