バインド処理
バインド処理によって、アプリケーション・プログラムとその関連データとの関係が確立されます。この処理を行ってからでないと、プログラムを実行することはできません。
Db2® プリコンパイラーは、プリコンパイル処理の間に、修正したソース・コードとデータベース要求モジュール (DBRM) の両方をアプリケーション・プログラムごとに作成します。そのプログラムを実行するには、 修正したソース・コードをコンパイルし、リンク・エディットしておかなければなりません。 DBRM は、パッケージにバインドする必要があります。その後、そのパッケージを特定のアプリケーション・プランに関連付けることができます。
バインド処理中に、Db2 は以下のアクションも実行します。
- Db2 カタログに照らして、プログラムの SQL ステートメント内のオブジェクト参照 (表、ビュー、列名など) を検証します。 バインド処理は、プログラムの実行前に発生するため、プログラムを実行する前にエラーを検出して訂正することができます。
- プログラム所有者を指定するためのバインド処理の許可、およびプログラム内の SQL ステートメントによって要求されるデータに指定の所有者がアクセスする許可を検証します。
- Db2 がプログラムのデータへのアクセスに使用するアクセス・パスを選択します。Db2 は、アクセス・パスの選択時に、表サイズ、使用可能な索引などの要因を検討します。
プランの最大サイズを決定する場合は、 プランのバインドに要する時間、EDM プールのサイズ、フラグメント化といった いくつかの物理的制約を考慮しなければなりません。 原則として、EDM プールは、最大の DBD またはプランのサイズのいずれか 大きい方のサイズの少なくとも 10 倍にする必要があります。
個別の DBRM をパッケージにバインドするには、BIND PACKAGE サブコマンドを使用します。 パッケージによって、アプリケーション・プラン内ですべてを再バインドする必要なしに、プログラムのさまざまなバージョンをテストできる柔軟性が得られます。
すべてのパッケージがアプリケーション・プランで指定されなければなりません。このようなアプリケーション・プランを作成し、そのプランにリソースを割り振り、そのプランに関連付けられるパッケージを指定するには、BIND PLAN コマンドを使用します。プランでは、パッケージ、パッケージのコレクション、またはこれらのエレメントの組み合わせを指定できます。(BIND PLAN の MEMBER オプションを使用して) プランに 1 つ以上の DBRM を組み込むように指定すると、Db2 は、それらの DBRM をパッケージに自動的にバインドし、その後それらのパッケージをプランにバインドします。プランには、指定のパッケージについての情報、およびアプリケーション・プログラムが使用するデータについての情報が含まれます。 このプランは Db2 カタログに保管されます。
プランとパッケージをバインドするには、BIND PLAN コマンドと BIND PACKAGE コマンドを発行するか、DB2I パネルを使用するか、または DSNH CLIST を使用します。