
OPTIMIZER ADAPTIVE CURSOR SHARING - 日本エクセム株式会社 Oracleパラメータ
目次[非表示]
- 1.基本情報
- 1.1.Parameter情報
- 1.2.説明
- 2.注意
基本情報
Parameter情報
説明
Adaptive Cursor Sharing機能を使用かどうかを指定します。既定値はTrueで、Oracleは常にAdaptive Cursor Sharing機能を使用します。Adaptive Cursor Sharingと、文字通りの状況に合わせて柔軟にCursorをShareという意味です。この概念を実装するために、OracleはBind Sensitive Cursor、Bind Aware Cursorという新しい概念を導入しました。
Bind Sensitive Cursorとは、文字通りBind値に敏感なCursorという意味です。つまり、Bind値が変わると、それを敏感に処理するという意味です。 1)Equal条件では、条件節に書かれたカラムにHistogramがあり、2)Range条件である場合、OracleはこれをBind Senstive Cursorと呼びます。
Bind Aware Cursorとは、Bind Sensitive Cursorに入力されたBind値に基づいて実行計画が分化されたCursorを意味します。つまり、Bind Aware Cursorが作成されたのは、Bind変数の値に基づいてOracleが適切なChild Cursorを作成したことを意味します。
Adaptive Cursor Sharing技法を使用すると、Bind Peekingによって最初の実行時に実行計画が決定されても後に新しいBind変数の値が使用され、それに応じて実行計画を分化(新しいChild Cursor生成)します。したがってBind Peekingによる副作用が実質的にないことになります。ただし、条件節に書かれたカラムにHistogramがあり、Histogramの分布に基づいて実行計画に大きな差があると判断される条件が重要です。つまり、適切なHistogramなしに意味が有りません。