optimize-clause

OPTIMIZE 文節は、SELECT ステートメント を 特別に最適化するように要求します。

最適化節の構文

構文図を読むビジュアルシンタックスダイアグラムをスキップするOPTIMIZE FOR整数 ROWSROW

最適化句の説明

最適化節 は、プログラムが結果表から 整数 行を超える行を取り出す意図がないと想定するように Db2 に指示します。 この句がない場合、 Db2 はFETCH FIRST句が指定されていない限り、結果テーブルのすべての行が取得されると想定します。 integer 行に最適化すると、パフォーマンスが向上します。 この節が省略されていて、FETCH FIRST が指定されている場合、OPTIMIZE FOR integer ROWS が想定されます。ここで、integer は FETCH FIRST 節で指定されている値です。 Db2 指定された行数に基づいてクエリを最適化します。

この節は、取り出すことができる行数の制限、結果表の変更、または行を取り出す順序の変更を行いません。 任意の行数を取り出すことができますが、integer 行を取り出した後は、パフォーマンスが低下する可能性があります。 一般的に、少数の行のみを取得する場合は、 Db2 が選択するアクセスパスに影響を与えるためにOPTIMIZE FOR 1 ROWを指定します。

integer の値は、正整数である必要があります (ゼロ以外)。

行アクセス制御は副選択の許可 ID またはロールがアクセスできる行に影響するため、行アクセス制御は間接的に OPTIMIZE FOR 節に影響します。

列アクセス制御は OPTIMIZE FOR 節に影響しません。

変更の開始最適化句が指定されていない場合、デフォルトのOPTIMIZE FOR integer ROWS, integer は以下の表から決定されます。 Db2 サブシステムは、アクセスパスの最適化にこの値を使用します。
表 1. OPTIMIZE 文節の整数の決定
OFFSET mROWS 最初のn行のみ取得 o行に最適化
指定 指定されていません
定数 定数 o メートル + メートル
未指定 定数 o n
OFFSET 文節と FETCH FIRST 文節のその他すべての組み合わせ o すべての行
変更の終わり