在oracle列中添加索引后,自动建议功能查询占用了太多时间

时间:2016-02-22 14:29:46

标签: sql performance oracle11g

我知道这个问题已被问过几次,但我还没有解决方案,而且我不是数据库方面的专家。

所以我的要求是实现自动建议功能,我已经编写了查询,它从特定表中的数百万行中提取数据。为此我已经使用like运算符编写了一个查询,这需要花费很多时间,请您在oracle中建议如何优化查询。

注意 - : Index has been added to name column

查询

SELECT distinct name,designator 
FROM xyz info 
WHERE name LIKE UPPER ( 'a%' ) 
and ROWNUM <= 20 
ORDER BY name

执行计划图像下方

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,我建议您使用复合索引(name, designator)而不是单列索引。

第二,distinct真的有必要吗?也就是说,表中是否有重复项?如果是这样,我会修复重复项并使用:

SELECT name, designator 
FROM xyz info 
WHERE name LIKE UPPER ( 'a%' ) and ROWNUM <= 20 
ORDER BY name;