Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


6.3.1 LOB列を定義した表の作成例

商品表を作成します。商品表の作成条件を次に示します。

なお,横分割表にデータをロードする場合には,パラレルローディング機能を使う方法もあります。パラレルローディング機能については,「横分割表にデータをロードする場合(パラレルローディング機能)」を参照してください。

[図データ]

補足事項
  • 一つのユーザLOB用RDエリアには,表中の一つのLOB列だけを格納します。また,一つの表に複数のLOB列がある場合には,それぞれ別のユーザLOB用RDエリアに格納する必要があります。

  • LOB列が横分割表の場合には,LOB列ごとにユーザLOB用RDエリアと,表を格納しているユーザ用RDエリアの数を1対1に対応させる必要があります。

〈この項の構成〉

(1) 商品表の定義

CREATE TABLEで商品表を定義します。定義例を次に示します。

(a) キーレンジ分割の場合

格納条件指定
CREATE TABLE 商品表
(商品番号 CHAR(5),
 商品名 NCHAR(15),
 標準単価 INTEGER,
 数量 INTEGER,
 商品画像 BLOB(64K) IN ((LOBAREA01),(LOBAREA02))
)IN ((RDAREA01) 商品番号<='10000',(RDAREA02));
境界値指定
CREATE TABLE 商品表
(商品番号 CHAR(5),
 商品名 NCHAR(15),
 標準単価 INTEGER,
 数量 INTEGER,
 商品画像 BLOB(64K) IN ((LOBAREA01),(LOBAREA02))
)PARTITIONED BY 商品番号
IN ((RDAREA01)'10000',(RDAREA02));

(b) フレキシブルハッシュ分割,FIXハッシュ分割の場合

CREATE TABLE 商品表
(商品番号 CHAR(5),
 商品名 NCHAR(15),
 標準単価 INTEGER,
 数量 INTEGER,
 商品画像 BLOB(6000) IN ((LOBAREA01),(LOBAREA02))
)[FIX] HASH HASH6 BY 商品番号
 IN (RDAREA01,RDAREA02);

注※ FIXハッシュ分割の場合に指定します。

(2) インデクスの定義

CREATE INDEXで商品表にインデクスを定義します。定義例を次に示します。

CREATE INDEX INDX1 ON 商品表 (商品番号)
    IN ((RDAREA03),(RDAREA04));

(3) 表へのデータの格納

データベース作成ユティリティ(pdload)で表にデータを格納します。格納手順を次に示します。

〈手順〉
  1. pdholdコマンドで,データロード対象RDエリア(RDAREA01〜RDAREA04,LOBAREA01〜LOBAREA02)を閉塞します。

  2. pdloadコマンドで,入力データファイルを表にデータロードします。RDエリアにはデータロード対象表(インデクス)だけを格納していて,かつ初期ロードのため,データベースの更新ログ取得方式にログレスモードを選択します。また,インデクスの作成方法にインデクス一括作成モード(省略値)を選択します。pdloadコマンドに指定するオプションについては,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。

  3. ログレスモードでpdloadコマンドを実行しているため,データロード対象RDエリアのバックアップを取得します。RDエリア単位のバックアップの取得方法については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。

  4. pdrelsコマンドで,データロード対象RDエリアの閉塞を解除します。

上記のコマンドとユティリティの詳細及びこれらのコマンドとユティリティの実行結果の確認方法については,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。

補足事項
  • ログレスモードでpdloadコマンドを実行するため,前記の手順1〜3の間はデータロード対象RDエリアを閉塞したままにしてください。

  • 改竄防止表に対してpdloadコマンドでデータロードするとき,-dオプションは使用できません。

  • インデクス一括作成中にエラーが発生した場合の対処方法については,「インデクス一括作成中に発生したエラーの対処方法」を参照してください。

(4) データの格納状態の確認

データロードをした場合は,運用を開始する前にデータベース状態解析ユティリティ(pddbst)を実行して,データの格納状態を確認することをお勧めします。設計どおりにデータベースを作成できたかどうかを確認できます。データベース状態解析ユティリティ(pddbst)を実行すると,次に示す情報を取得できます。

(5) 補足事項

LOB列を定義した表にデータロードする場合,LOB列構成基表とLOBデータを別々にデータロードすることもできます。このときの手順を次に示します。

なお,データベースの更新ログ取得方式にログレスモードを,インデクスの作成方法にインデクス一括作成モード(省略値)を選択したとします。

〈手順〉
  1. pdholdコマンドで,データロード対象RDエリア(RDAREA01〜RDAREA04,LOBAREA01〜LOBAREA02)を閉塞します。

  2. pdloadコマンドで,入力データファイルを表(LOB列構成基表及びインデクス)にデータロードします。このときのデータロード対象RDエリアはRDAREA01〜RDAREA04になります。このとき,LOB中間ファイルにLOB列のデータロード時に必要な情報を出力するようにしてください。pdloadコマンドに指定するオプションについては,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。

  3. pdloadコマンドで,ユーザLOB用RDエリアLOBAREA01〜LOBAREA02にデータロードします。このとき,LOB入力ファイルと2.で作成したLOB中間ファイルを指定します。

  4. ログレスモードでpdloadコマンドを実行しているため,データロード対象RDエリアのバックアップを取得します。RDエリア単位のバックアップの取得方法については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。

  5. pdrelsコマンドで,データロード対象RDエリアの閉塞を解除します。

上記のコマンドとユティリティの詳細及びこれらのコマンドとユティリティの実行結果の確認方法については,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。