デフォルトでは、Natural SQL ドライバは最近使用した 16 の Natural ステートメントのテーブルを管理します。このテーブルのすべてのステートメントは準備完了とマークされます。これは、ステートメントがデータベースシステムによってコンパイルされることなくすぐに実行できることを示します。
パフォーマンスを最大限まで高めるために、ダイナミックパラメータ SQLRELCMD
および SQLMAXSTMT
が提供されています。これらのパラメータは、SQL ドライバのステートメントテーブルの処理を設定するものです。これらのパラメータはプロファイルパラメータではないことに注意してください。
このパラメータは、コマンドを SQL ステートメントテーブルからいつ解放するかを決定します。
設定可能値:
ENDGP
(デフォルト):生成プログラムが終了すると、ステートメントテーブルにあるこのプログラムのすべてのステートメントがテーブルから削除されます。
NEVER
:テーブルからステートメントは削除されません。
このパラメータでは、ステートメントテーブルのサイズを決定します。
設定可能値:
1~64(デフォルト:16)
SQLMAXSTMT
パラメータを設定する場合は、次の点に注意してください。
テーブル内に準備完了済みのステートメントを多く維持すると、リソースの消費量が増加する可能性があります。
ステートメントテーブルのサイズが、ターゲットデータベース内のダイナミック SQL ステートメントの制限を超えると、アプリケーションに SQL エラーが発生します。
これは、SQLMAXSTMT
の最適化による利点が実際にあるかどうかに依存します。
一般的に、PREPARE
ステートメントの数が最小になるとバッチタイプのアプリケーションのパフォーマンスは向上しますが、ターゲットデータベースのリソースの消費が増加するため、オンラインアプリケーションのパフォーマンスが低下する可能性があります。
上記のパラメータをダイナミックに設定するには、Natural の起動時に入力します。
natural sqlrelcmd=never sqlmaxstmt=40
すると、Natural は、ステートメントテーブルサイズを 40 で開始し、Natural が終了した場合にのみクリアされます。