忍者ブログ

OracleDBAの技術メモ

最近物覚えが悪くなったので 仕事中に調べた後々役立つ情報をメモしております。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

内部表の決定(USE_NLヒントが有効にならない原因)

USE_NLヒントは、
指定された表が内部表として使用されるような結合時に
ネステッド・ループ結合するように指示するヒント句である。

したがって、指定されたテーブルが内部表として使用されない場合には、
USE_NLヒントは無効となる。

通常、オプティマイザは複数の結合順序パターンのコストを評価し、
よりコストの低い実行計画となる結合順序パターンを選択する。

そのため、USE_NLで指定したテーブルが
内部表とならない結合順序のコストより低く評価された結合順序があった場合、
その結合順序が選択されてしまい
結果的にUSE_NLヒントは無効となってしまう。

  例:以下の4つのパターンが評価されたとする
      ※)(外部表)→(内部表)と表現する

      プラン1 表A→表B ネステッド・ループ結合 コスト:400
      プラン2 表A→表B ハッシュ・ジョイン結合 コスト:300
      プラン3 表B→表A ネステッド・ループ結合 コスト:200
      プラン4 表B→表A ハッシュ・ジョインン結合 コスト:100

    上記の場合、通常もっともコストの低いプラン4が選択される。
    プラン4で実行計画が構成された状態から、
    USE_NL(表B)を指定して結合方法を強制しようとしても、
    表Bは内部表ではないのでUSE_NLヒントは働かない。

    しかし、USE_NL(表A)を指定した場合、
    表Aは内部表なので、ネステッド・ループ結合が使用される。

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

ブログ内検索

プロフィール

HN:
宇佐 義男
性別:
男性
自己紹介:
都内で活動中のフリーエンジニア
最近はOracle DBに関する作業が主です。

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

最新CM

[08/06 Apagajid]
[06/23 Ajimehof]
[05/28 ovkftcz]
[05/20 Adeepen]
[05/13 Ajirubuy]

バーコード

P R

忍者アナライズ

免責事項

当ブログは日本オラクル株式会社 及びその子会社、関連会社とは一切関係ありません。 当ブログに記述の内容については、実際とは異なる場合があります。 記載しているコマンド、スクリプトを利用したことによって発生した問題、障害等については一切責任を負いません。 利用は自己責任にてお願い致します。