【问题标题】:Is it possible to skip the particular SQL statement from auto sql tuning advisor job是否可以从自动 sql 调优顾问作业中跳过特定的 SQL 语句
【发布时间】:2017-06-07 08:09:22
【问题描述】:

我在使用自动 sql 调优顾问时遇到 ORA:7445 问题。自动 sql 调优顾问不断失败,并显示

ORA:7445

在尝试调整特定 SQL 时。

有没有办法从自动 sql 调优顾问作业中跳过这条 sql 语句?

【问题讨论】:

  • 这是一个oracle11gR2数据库。
  • 最好向 MOS 提交 SR 以解决/修复 7445。
  • 您是否查看了警报日志以获取更多信息?可能是甲骨文在那里写了更多信息。

标签: oracle plsql oracle11g database-administration sql-tuning


【解决方案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_FILTERPLAN_FILTER。我认为其中之一可能有用,但我认为它们尚未实施。我在 Google 或 My Oracle Support 上找不到对它们的任何引用。当我为值输入随机文本时,没有错误。


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多