我面临一个ORA:7445问题与自动sql调优顾问。自动sql调优顾问不断失败
ORA:7445
当它试图调优特定的SQL时。
是否有任何方法从自动sql调优顾问作业中跳过此sql语句?
发布于 2017-01-24 05:05:35
避免自动SQL调优顾问的最简单方法可能是将查询转换为程序不支持的表单。
根据“数据库性能优化指南”的“自动SQL调优”一章
数据库忽略递归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调优顾问的原因之一。我喜欢它的想法,但实际上我从未见过调优顾问提供有用的信息。它一直为我做的就是生成警报。
理论上,包SQLTUNE包含参数BASIC_FILTER、OBJECT_FILTER和PLAN_FILTER。我认为其中之一可能有用,但我认为它们还没有实现。我在Google或我的Oracle支持中找不到对它们的任何引用。当我为值输入随机文本时,没有错误。
理想情况下,我们应该查找每一个ORA-00600和ORA-07445错误,创建一个SR,并修复潜在的问题。但谁有时间这么做呢?当您遇到数据库"bug“时,最好的解决方案通常是尽可能快地避免它。
https://stackoverflow.com/questions/41795795
复制相似问题