optimize-clause
OPTIMIZE 文節は、SELECT ステートメント を 特別に最適化するように要求します。
最適化節の構文
最適化句の説明
最適化節 は、プログラムが結果表から 整数 行を超える行を取り出す意図がないと想定するように 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 サブシステムは、アクセスパスの最適化にこの値を使用します。| OFFSET mROWS | 最初のn行のみ取得 | o行に最適化 | |
|---|---|---|---|
| 指定 | 指定されていません | ||
| 定数 | 定数 | o | メートル + メートル |
| 未指定 | 定数 | o | n |
| OFFSET 文節と FETCH FIRST 文節のその他すべての組み合わせ | o | すべての行 | |

