Sql调优顾问(接受个人资料)

时间:2010-11-29 08:20:27

标签: oracle sqlprofiler sql-tuning

我为某些查询创建了sql调优任务并执行了它。生成报告后,它建议我运行以下命令:

execute dbms_sqltune.accept_sql_profile(task_name => 'tuning_task_name',
                                        replace => TRUE);

但是!当然我想知道这个简介做了什么?!在互联网上搜索这个问题后,我发现了以下问题:

select
    rat.attr1
from
  sys.WRI$_ADV_TASKS    tsk,
  sys.WRI$_ADV_RATIONALE  rat
where
  tsk.name = 'tuning_task_name'
and  rat.task_id   = tsk.id

此查询的结果如下:

alt text

我不明白它做了什么:(而且我想将此配置文件提示转换为更易读(/ +提示 /)sql提示?

2 个答案:

答案 0 :(得分:1)

是的,你看到了那些大纲提示。

当oracle优化器解析此SQL时,将强制使用它们。因此,生成的执行计划受这些提示的影响。

如果你想在你的SQL中使用类似的提示,你只需要将它们复制到SQL中,然后是SELECT,由/ + /注释。请注意查询块名称,它们将在不同的SQL中更改。

以下是Oracle SQL提示的完整列表供您参考。

http://www.hellodba.com/reader.php?ID=208&lang=EN http://www.hellodba.com/reader.php?ID=220&lang=EN

希望这有帮助

答案 1 :(得分:0)

根据此PDF的第24页,看起来这些提示主要是告诉优化器调整不同对象的基数估计值。为什么探查者这样做我不确定;也许统计数据很糟糕,或者可能正在制作假统计数据以强制推行更好的计划?但也许更好的理解配置文件的方法是比较前后的解释计划。