Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在oracle列中添加索引后,自动建议功能查询花费的时间太长_Sql_Performance_Oracle11g - Fatal编程技术网

Sql 在oracle列中添加索引后,自动建议功能查询花费的时间太长

Sql 在oracle列中添加索引后,自动建议功能查询花费的时间太长,sql,performance,oracle11g,Sql,Performance,Oracle11g,我知道这个问题已经被问了好几次了,但我还没有找到解决方案,我也不是数据库专家 因此,我的需求是实现自动建议功能,为此我编写了一个查询,从特定表的数百万行中提取数据。为此,我使用like运算符编写了一个查询,这需要花费大量时间。请您建议如何在oracle中优化查询 注意-:索引已添加到名称列 质疑 选择不同的名称、标识符 从xyz信息 其中名称(如UPPER('a%')) ROWNUM首先,我建议您使用复合索引,(名称、标识符),而不是单列索引 第二,独特的真的有必要吗?也就是说,表中是否有重复项

我知道这个问题已经被问了好几次了,但我还没有找到解决方案,我也不是数据库专家

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

注意-:
索引已添加到名称列

质疑

选择不同的名称、标识符
从xyz信息
其中名称(如UPPER('a%'))

ROWNUM首先,我建议您使用复合索引,
(名称、标识符)
,而不是单列索引

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

SELECT name, designator 
FROM xyz info 
WHERE name LIKE UPPER ( 'a%' ) and ROWNUM <= 20 
ORDER BY name;
选择名称、标识符
从xyz信息

其中,UPPER('a%')和ROWNUM等名称向我们显示执行计划(请编辑您的问题纯文本,无屏幕截图)。另外:
ROWNUM@a_horse_和_no_名称请参见上述执行计划。我不想通过使用查询在纯文本上获取执行计划,所以我粘贴了执行计划图像。该计划显示的位置条件与您的问题不同。该计划显示您正在使用
upper(name)像'A%'
(而不是
name像upper('A%')
),它不会在
name
上使用索引。您需要在
upper(name)
而不是
name
上创建索引。下次,请发布执行计划的纯文本版本。这种图形化的东西通常隐藏了太多的细节。正如“no_name_horse”所说的,如果您使用(UPPER(name)),您必须在UPPER(name)上创建一个索引。“Gordon Linoff”的建议也是一个很好的建议,我将同时实施这两个建议。
SELECT name, designator 
FROM xyz info 
WHERE name LIKE UPPER ( 'a%' ) and ROWNUM <= 20 
ORDER BY name;