リリース情報


35.5 第 13 章 ラージ・オブジェクト (LOB) の使用

35.5.1 連合データベース・システムでのラージ・オブジェクト (LOB) サポート

DB2 は、文字ラージ・オブジェクト (CLOB)、2 バイト文字ラージ・オブジェクト (DBCLOB)、 および バイナリー・ラージ・オブジェクト の、3 つのタイプのラージ・オブジェクト (LOB) を サポートします。DB2 LOB サポートの一般情報については、以下の DB2 ブックを参照してください。

連合データベース・システムでは、リモート・データ・ソース上の LOB にアクセスして 取り扱うことができます。LOB は非常に大きなデータになることがあるため、リモート・データ・ソースからの LOB の転送にはかなりの時間がかかることがあります。DB2 連合データベースは、データ・ソースからの LOB データの転送を最小化しようとするとともに、DB で LOB を具体化することなく、 要求された LOB データをデータ・ソースから要求しているアプリケーションに直接引き渡そうと します。

このセクションでは、次の点について説明します。

35.5.1.1 DB2 による LOB の検索方法

DB2 連合システムは、LOB ストリーミングおよび LOB の具体化という 2 つの LOB 検索メカニズムを 使用します。

LOB ストリーミング

LOB ストリーミングで、LOB データは段階的に検索されます。DB2 は、完全にプッシュダウンされる 照会の結果セットにあるデータに対して LOB ストリーミングを使用します。たとえば、次の照会を 考えてみてください。

SELECT empname, picture FROM orc_emp_table WHERE empno = '01192345'

ここで、picture は LOB 列を表し、orc_emp_table は 社員データを含む Oracle の表を指すニックネームを表します。DB2 照会プロセッサーが Oracle データ・ソースにある照会全体を実行することにした場合、DB2 照会プロセッサーは ストリーミングを行うために picture 列にマークを付けます。実行時に、 LOB がストリーミングを行うためにマークされていることを DB2 が通知すると、DB2 は データ・ソースから LOB を段階的に検索します。検索が終わると、DB2 はアプリケーション・メモリー・スペースに データを転送します。

LOB の具体化

LOB の具体化で、リモート LOB データは DB2 によって検索され、 連合サーバーにローカルに格納されます。DB2 が LOB の具体化を使うのは、以下の場合です。

35.5.1.2 アプリケーションでの LOB ロケーターの使用方法

アプリケーションは、リモート・データ・ソースに格納されている LOB に対して LOB ロケーターを要求することができます。LOB ロケーターはホスト変数に 格納されている 4 バイトの値で、プログラムはこれを使用してデータベース・システムに 保持されている LOB 値 (または LOB 式) を参照します。LOB ロケーターを使用すると、 プログラムは、正規のホスト変数に格納されている LOB 値と同じように、LOB 値を 操作することができます。LOB ロケーターを使用することで、LOB 値をサーバーから アプリケーションに (また、アプリケーションからサーバーに) トランスポートする 必要がなくなります。LOB ロケーターの追加情報については、 「アプリケーション開発の手引き」を参照してください。

DB2 は、リモート・データ・ソースから LOB を検索し、LOB を DB2 に格納してから、 格納した LOB に LOB ロケーターを実行することができます。LOB ロケーターがリリースされるのは、 以下の場合です。

35.5.1.3 LOB の制限

LOB の使用や検索に際しては、以下の点を考慮してください。

35.5.1.4 LOB データ・タイプおよび LOB 以外のデータ・タイプ間のマッピング

DB2 LOB データ・タイプを、データ・ソースにある LOB 以外のデータ・タイプにマップできる ケースが 2、3 あります。DB2 LOB タイプの列と、データ・ソースの対応列との間のマッピングを 作成する必要がある場合、対応するタイプとして、できれば LOB データ・タイプを使用することをお勧めします。

マッピングを作成するには、作成タイプ・マッピング DDL ステートメントを使用します。例:

CREATE TYPE MAPPING my_oracle_lob FROM sysibm.clob TO SERVER TYPE oracle TYPElong

パラメーターの意味は次の通りです。

my_oracle_lob
タイプ・マッピングの名前です。

sysibm.clob
DB2 CLOB データ・タイプです。

oracle
接続先サーバーのタイプです。

long
Oracle データ・タイプに対応するタイプです。

35.5.2 システムの調整

リモート LOB を検索するアプリケーションが、ステートメントを処理するための システム・リソースが不足していることを示すエラー・メッセージを返した場合には、 データベース構成ファイルにある、アプリケーションのヒープ・サイズ・パラメーター、 APPLHEAPSZ の値を増やしてください。例:

 DB2 UPDATE DB CFG FOR EMPLOYEE USING APPLHEAPSZ 512

。ここで、EMPLOYEE は 調節しているデータベース名で、512 はアプリケーションのヒープ・サイズ・パラメーターの 値です。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]