Hitachi

ノンストップデータベース HiRDB Version 10 解説


6.8.14 位置付け子機能

〈この項の構成〉

(1) 位置付け子機能とは

クライアントのUAPで,検索したBLOBデータ又はBINARYデータをそのデータ型の埋込み変数で受け取る場合,受け取ったデータを格納するためのメモリ領域をクライアント側で用意する必要があります。このため,長大なデータを検索する場合,クライアント側のメモリ資源を圧迫します。さらに,サーバからクライアントへのデータ転送量も大きくなります。しかし,必要なデータが一部だけであったり,受け取ったデータを変更しないでほかのSQL文中に指定してサーバに送り返すだけであったりする場合,データをクライアントに転送することはむだなことになります。

位置付け子機能は,これを解決する機能です。位置付け子は,サーバ上のデータを識別する4バイトの値のデータであり,1行SELECT文やFETCH文のINTO句などに位置付け子の埋込み変数を指定することで,検索結果としてデータの実体ではなく,そのデータを識別する位置付け子の値を受け取ります。また,データを識別する位置付け子の埋込み変数をほかのSQL文中に指定すると,位置付け子が識別するデータを扱う処理ができます。

位置付け子機能の概要を次の図に示します。

図6‒21 位置付け子機能の概要

[図データ]

〔説明〕

位置付け子機能を使用しない場合
  1. DBから検索したBLOBデータを,サーバからクライアントに転送します。

  2. クライアントからサーバにBLOBデータを転送し,それをDBに格納します。

位置付け子機能を使用する場合
  1. サーバが,DBから検索したデータを識別する位置付け子データを作成します。

  2. 位置付け子データを,サーバからクライアントに転送します。

  3. クライアントからサーバに位置付け子データを転送します。

  4. 位置付け子データが識別するサーバ上のBLOBデータをDBに格納します。

(2) 適用基準

BLOBデータ又はBINARYデータを検索する場合に適用します。

位置付け子機能を使用すると,クライアント側で実際のデータの大きさ分だけメモリを確保する必要がなくなり,更にサーバ,クライアント間のデータ転送を位置付け子で行えるため,データ転送量を少なくできます。

(3) 利点

位置付け子機能を使用すると,クライアント側のメモリ所要量を削減できます。また,サーバ,クライアント間のデータ転送量を少なくできます。

(4) 使用方法

位置付け子の値を受け取る場合,SQL文中のBLOB型又はBINARY型のデータを受け取る埋込み変数を指定する箇所に,対応するデータ型の位置付け子の埋込み変数を指定します。また,位置付け子に割り当てられたデータを処理する場合は,SQL文中にBLOB型又はBINARY型の埋込み変数を指定する代わりに,対応するデータ型の位置付け子の埋込み変数を指定します。

位置付け子機能については,マニュアル「HiRDB UAP開発ガイド」を参照してください。