选择查询需要花费很多时间来执行 - 查询优化

时间:2015-07-30 08:56:34

标签: sql oracle query-optimization

我有一个名为cps_case_history的表,其中一列名为'Notes',数据类型为Varchar2 (1800 Char)

我需要从cps_case_history表中获取10到15条记录Notes like 'ACCOUNT TFR TO UFSS'

我使用了以下两个查询但是执行时间太长,任何人都可以建议一种方法来优化以下查询,以便我可以快速获取10或15条记录

首先查询:

Select * from cps_case_history where 
 (dbms_lob.instr(notes, 'ACCOUNT TFR TO UFSS') > 1) 

第二次查询:

 select * from cps_case_history where 
 notes like '%ACCOUNT TFR TO UFSS%'

先谢谢。

2 个答案:

答案 0 :(得分:0)

顾名思义,它是历史表cps_case_history。因此,该表可能包含大量数据。为了快速获取查询结果,该表应具有分区或索引。

答案 1 :(得分:0)

如果您想要该表中的任何10-15条记录,请谨慎使用TOP

select Top 15 * from cps_case_history 
         where notes like '%ACCOUNT TFR TO UFSS%' ;