我知道这个问题已被问过几次,但我还没有解决方案,而且我不是数据库方面的专家。
所以我的要求是实现自动建议功能,我已经编写了查询,它从特定表中的数百万行中提取数据。为此我已经使用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
执行计划图像下方
答案 0 :(得分:0)
首先,我建议您使用复合索引(name, designator)
而不是单列索引。
第二,distinct
真的有必要吗?也就是说,表中是否有重复项?如果是这样,我会修复重复项并使用:
SELECT name, designator
FROM xyz info
WHERE name LIKE UPPER ( 'a%' ) and ROWNUM <= 20
ORDER BY name;