1

いくつかのクエリに対して 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

このクエリの結果は次のとおりです。

代替テキスト

私はそれが何をするのか理解していません:(そして、このプロファイルヒントをより読みやすい(/ +ヒント/)SQLヒントに変換したいですか?

4

2 に答える 2

0

このPDFの 24 ページに基づいて、これらのヒントは主にオプティマイザーにさまざまなオブジェクトのカーディナリティの見積もりを調整するように指示しているように見えます。プロファイラーがこれを行う理由はわかりません。統計が悪いのかもしれませんし、より良い計画を強制するために偽の統計を作成しているのかもしれません。しかし、おそらくプロファイルを理解するためのより良い方法は、前と後の説明計画を比較することです。

于 2010-11-30T06:49:22.200 に答える