2017-01-22 64 views
1

我正面临与自动sql调优顾问的ORA:7445问题。自动SQL调优顾问保持与是否有可能从自动sql调优顾问工作中跳过特定的SQL语句

ORA失败:7445

,而它试图调整特定SQL。

有什么办法可以从自动sql调整顾问工作中跳过这个sql语句吗?

+0

它是一个oracle11gR2数据库。 – sasikumar

+1

你最好在向MOS提交SR来解决7445问题。 – thatjeffsmith

+0

您是否查看关于更多信息的警报日志?可能是oracle在那里写了更多的信息。 –

回答

1

避免自动SQL Tuning Advisor的最简单方法可能是将查询转换为程序不支持的表单。

根据the "Automatic SQL Tuning" chapter of the "Database Performance Tuning Guide"

数据库忽略递归SQL和声明已调整 最近(上月),并行查询,DML,DDL和SQL 报表业绩方面的问题引起的并发问题。

如果查询select * from dba_objects是造成问题,请尝试重新写这样的:

select * from dba_objects 
union all 
--This query block only exists to avoid the Automatic SQL Tuning Advisor. 
select /*+ parallel(dba_objects 2) */ * from dba_objects 
where 1=0; 

它现在是一个“并行查询”,虽然它不会真正在,因为1=0的并行运行。我没有测试过这个,我想你测试会很困难,因为你需要刷新现有的AWR数据以防止出现错误。

这是我通常禁用自动SQL调整顾问的原因之一。我喜欢它的想法,但实际上我从来没有看到调音顾问提供有用的信息。它为我做的所有事情都是生成警报。


理论,包DBMS_AUTO_SQLTUNE包含参数BASIC_FILTEROBJECT_FILTER,和PLAN_FILTER。我认为其中的一个可能有用,但我认为它们还没有实施。我无法在Google或My Oracle Support上找到对它们的引用。当我输入数值的随机文本时,没有错误。


理想的情况下,我们会查找每一个ORA-00600和ORA-07445错误,创建一个SR,并解决潜在的问题。但谁有时间呢?当遇到数据库“bug”时,最好的解决方案通常是尽可能快地避免它。