Sql 有没有办法强制Oracle更改查询';不使用提示的计划?
我有一个使用错误索引的查询。我可以看出,使用索引,oracle无法轻松获取数据。查询是由供应商软件构建的,无法更改。有没有办法强迫oracle在没有提示的情况下更改解释计划。Sql 有没有办法强制Oracle更改查询';不使用提示的计划?,sql,oracle,indexing,oracle11g,tags,Sql,Oracle,Indexing,Oracle11g,Tags,我有一个使用错误索引的查询。我可以看出,使用索引,oracle无法轻松获取数据。查询是由供应商软件构建的,无法更改。有没有办法强迫oracle在没有提示的情况下更改解释计划。 任何帮助都将不胜感激。至少有11种方法可以在不修改查询的情况下控制计划。它们大致按用途顺序列在下面: SQL计划基线-将一个计划替换为另一个计划 SQL概要文件-在计划中添加“纠正”提示。例如,配置文件可能会说“此连接返回的行数比预期的多100倍”,这会间接更改计划 存储的大纲-与SQL计划基线的想法类似,但功能较少。此选
任何帮助都将不胜感激。至少有11种方法可以在不修改查询的情况下控制计划。它们大致按用途顺序列在下面:
alter Session set optimizer_features_enable='11.2.0.3'代码>。并非总是有有用的参数。但其中一个优化器参数可能会有所帮助,或者您可以使用未记录的提示更改计划,或者禁用如下功能:alter session set“\u fix\u control”='XYZ:OFF'代码>
分析/估计统计数据?如果您不能更改查询,那么您可能就无能为力(除了添加/删除索引)。检查企业管理器(也称为“网格控制”)计划一项调优任务非常容易,应该可以发现更好的计划。你是说你认为Oracles计划是错误的吗?首先确认一个不同的计划更有效(通过提示),然后尝试找出为什么它会提出这样一个无效的计划(通常是因为不正确的统计数据),这是很有用的