8.2.1 使用例

データベース再編成ユティリティの使用例の一覧(表の再編成)を次に示します。

使用例内容区分
例1横分割表の表単位の再編成S
例2横分割表のRDエリア単位の再編成S
例3LOB列がある表の再編成
  • LOB列構成基表とLOB列を同時に再編成します。
S
例4抽象データ型(SGMLTEXT型)がある表の再編成
  • LOB列構成基表だけ再編成します。
S
例5横分割表の表単位の再編成P
例6LOB列がある表の再編成
  • LOB列構成基表とLOB列を同時に再編成します。
P
例7アンロードデータファイルとしてEasyMTを使用する場合の再編成
  • アンロードデータファイルはEasyMTを使用します。
  • アンロードデータファイルは1サーバの1ファイルに作成します。
P
例8スキーマ単位の再編成P
(凡例)
S:HiRDB/シングルサーバ
P:HiRDB/パラレルサーバ
<この項の構成>
(1) 横分割表の表単位の再編成
(2) 横分割表のRDエリア単位の再編成
(3) LOB列がある表の再編成
(4) 抽象データ型がある表の再編成
(5) 横分割表の表単位の再編成
(6) LOB列がある表の再編成
(7) アンロードデータファイルとしてEasyMTを使用する場合の再編成
(8) スキーマ単位の再編成

(1) 横分割表の表単位の再編成

例1
横分割表(TABLE1)を表単位に再編成します。
表(TABLE1),及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
        IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義(分割キーインデクス)

 CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))

  • インデクスの定義(非分割キーインデクス)

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
横分割表(TABLE1)を表単位に再編成します。
-k rorg:再編成をするときの指定
-t TABLE1:再編成対象の表の名称
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload /usr/unload_file1                     1
idxwork /usr/idx_file                        2
sort /usr/sortwork,8192                      3

[説明]
  1. アンロードデータファイルの指定
    /usr/unload_file1:アンロードデータファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    /usr/idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)

(2) 横分割表のRDエリア単位の再編成

例2
横分割表(TABLE1)をRDエリア単位に再編成します。
表(TABLE1),及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
        IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義(分割キーインデクス)

 CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))

  • インデクスの定義(非分割キーインデクス)

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
(a) TABLE1(RDエリアPDBUSER01)の再編成
[実行するコマンドの説明]
横分割表(TABLE1)をRDエリア単位に再編成します。
-k rorg:再編成をするときの指定
-t TABLE1:再編成対象の表の名称
-r PDBUSER01:再編成対象のRDエリアの名称
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload /usr/unload_file1                     1
idxwork /usr/idx_file                        2
sort /usr/sortwork,8192                      3

[説明]
  1. アンロードデータファイルの指定
    /usr/unload_file1:アンロードデータファイルの名称
  2. インデクス情報ファイルを作成するディレクトリの指定
    /usr/idx_file:インデクス情報ファイルを作成するディレクトリの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
(b) INDEX2の作成

INDEX2はこのままでは使用できません。

INDEX2を使用する場合は,RDエリアPDBUSER02の再編成をして,PDBUSER02のインデクス情報を出力します。このインデクス情報ファイルと,既に出力されているインデクス情報ファイル2を入力にして,pdrorgでインデクスの一括作成(-k ixmk)を実行してください。

詳細は,「8.6 インデクスの一括作成」を参照してください。

(3) LOB列がある表の再編成

例3
LOB列がある表(TABLE2)に対して,LOB列構成基表とLOB列を同時に再編成します。
なお,次の表及びインデクスが定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE2(C1 INT NOT NULL,C2 BLOB IN ((LOBUSER01),
              (LOBUSER02))) IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義

 CREATE INDEX INDEX2 ON TABLE2(C1) IN ((PDBUSER03),(PDBUSER04))

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
LOB列がある表(TABLE2)を,表単位(LOB列構成基表とLOB列を同時)に再編成します。
-k rorg:再編成をするときの指定
-t TABLE2:再編成対象の表の名称
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload /usr/unload_file1                                   1
index INDEX2 PDBUSER03 /usr/index_inf1                     2
index INDEX2 PDBUSER04 /usr/index_inf2                     2
sort /usr/sortwork,8192                                    3
lobunld /usr/lobunld_file1                                 4

[説明]
  1. アンロードデータファイルの指定
    /usr/unload_file1:アンロードデータファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX2:インデクス識別子
    PDBUSER03,PDBUSER04:インデクスを格納するRDエリアの名称
    /usr/index_inf1,/usr/index_inf2:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  4. LOBデータのアンロードファイルの指定
    /usr/lobunld_file1:LOBデータのアンロードファイルの名称

(4) 抽象データ型がある表の再編成

例4
抽象データ型(SGMLTEXT)の列を持つ表(TABLE1)の再編成をします。抽象データ型(SGMLTEXT)はHiRDB Text Search Plug-inで提供されています。
表,及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT,C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
           PLUGIN'<DTD>sgml.dtd</DTD>' ) IN PDBUSER01

  • プラグインインデクスの定義

 CREATE INDEX INDEX1 USING TYPE NGRAM ON TABLE1(C2) IN LOBUSER02

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
表(TABLE1)を再編成します。
-k rorg:再編成をするときの指定
-t TABLE1:再編成対象の表の名称
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload /hd001/unload_file1                                    1
index INDEX1 LOBUSER02 /hd001/ixdir/INDEX1_LOBUSER02          2

[説明]
  1. アンロードデータファイルの指定
    /hd001/unload_file1:アンロードデータファイルの名称
  2. インデクス情報ファイルの指定
    INDEX1:インデクスの一括作成をする,プラグインインデクスのインデクス識別子
    LOBUSER02:インデクスの一括作成をする,プラグインインデクスのインデクス格納RDエリアの名称
    /hd001/ixdir/INDEX1_LOBUSER02:インデクス情報ファイルの名称

(5) 横分割表の表単位の再編成

例5
横分割表(TABLE1)を表単位に再編成します。
表,及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
              IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義(分割キーインデクス)

 CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))

  • インデクスの定義(非分割キーインデクス)

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
横分割表(TABLE1)を表単位に再編成します。
-k rorg:再編成をするときの指定
-t TABLE1:再編成対象の表の名称
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload bes1:/usr/unload_file1                     1
idxwork bes1 /usr/idxwork                         2
sort bes1 /usr/sortwork,8192                      3
unload bes2:/usr/unload_file2                     1
idxwork bes2 /usr/idxwork                         2
sort bes2 /usr/sortwork,8192                      3

[説明]
  1. アンロードデータファイルの指定
    bes1,bes2:アンロードデータファイルがあるサーバの名称
    /usr/unload_file1,/usr/unload_file2:アンロードデータファイルの名称
  2. インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定
    bes1,bes2:インデクス情報ファイルを作成するサーバの名称
    /usr/idxwork:インデクス情報ファイル用ディレクトリの名称
  3. ソート用ワークディレクトリの指定
    bes1,bes2:ソート用ワークファイルを作成するサーバの名称
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)

(6) LOB列がある表の再編成

例6
LOB列がある表(TABLE2)に対して,LOB列構成基表とLOB列を同時に再編成します。
次の表,及びインデクスが定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE2(C1 INT NOT NULL,C2 BLOB IN ((LOBUSER01),
             (LOBUSER02))) IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義

 CREATE INDEX INDEX2 ON TABLE2(C1) IN ((PDBUSER03),(PDBUSER04))

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
LOB列がある表(TABLE2)を,表単位(LOB列構成基表とLOB列を同時)に再編成します。
-k rorg:再編成をするときの指定
-t TABLE2:再編成対象の表の名称
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload bes1:/usr/unload_file1                              1
unload bes2:/usr/unload_file2                              1
index INDEX2 PDBUSER03 /usr/index_inf1                     2
index INDEX2 PDBUSER04 /usr/index_inf2                     2
sort bes1 /usr/sortwork,8192                               3
sort bes2 /usr/sortwork,8192                               3
lobunld bes1:/usr/lobunld_file1                            4
lobunld bes2:/usr/lobunld_file2                            4

[説明]
  1. アンロードデータファイルの指定
    bes1,bes2:アンロードデータファイルがあるサーバの名称
    /usr/unload_file1,/usr/unload_file2:アンロードデータファイルの名称
  2. インデクス情報を出力するインデクス情報ファイルの指定
    INDEX2:インデクス識別子
    PDBUSER03,PDBUSER04:インデクスを格納するRDエリアの名称
    /usr/index_inf1,/usr/index_inf2:インデクス情報ファイルの名称
  3. ソート用ワークディレクトリの指定
    bes1,bes2:ソート用ワークファイルを作成するサーバの名称
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)
  4. LOBデータのアンロードファイルの指定
    bes1,bes2:LOBデータのアンロードファイルがあるサーバの名称
    /usr/lobunld_file1,/usr/lobunld_file2:LOBデータのアンロードファイルの名称

(7) アンロードデータファイルとしてEasyMTを使用する場合の再編成

例7
横分割表(TABLE1)を表単位に再編成します。
このとき,アンロードデータファイルとしてEasyMTを使用します。また,アンロードデータファイルは-gオプションを指定して一つだけ作成します。
表,及びインデクスは次のように定義されているものとします。
  • 表の定義

 CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
              IN ((PDBUSER01) C1 > 10,(PDBUSER02))

  • インデクスの定義(分割キーインデクス)

 CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))

  • インデクスの定義(非分割キーインデクス)

 CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
横分割表(TABLE1)を表単位に再編成します。
-k rorg:再編成をするときの指定
-t TABLE1:再編成対象の表の名称
-g:アンロードデータファイルを一本化するときの指定
-f easymt:アンロードデータファイルとしてEasyMTを使用するときの指定
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

mtguide use                                                    1
unload fes1:MT01 file=unload_data,vol=(vol001,vol002)          2
idxwork bes1 /usr/idx_file                                     3
idxwork bes2 /usr/idx_file                                     3
sort bes1 /usr/sortwork,8192                                   4
sort bes2 /usr/sortwork,8192                                   4

[説明]
  1. EasyMTを使用するときの指定
    use:MTguideを使用するときの指定
  2. アンロードデータファイルの指定
    fes1:アンロードデータファイルを作成するサーバの名称
    MT01:MTguideが管理する装置記号の名称
    unload_data:MTのファイルの名称
    (vol001,vol002):アンロードデータを2本のMTにアンロードするときの指定
  3. インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定
    bes1,bes2:インデクス情報ファイルを作成するサーバの名称
    /usr/idx_file:インデクス情報ファイルを作成するディレクトリの名称
  4. ソート用ワークディレクトリの指定
    bes1,bes2:ソート用ワークファイルを作成するサーバの名称
    /usr/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)

(8) スキーマ単位の再編成

例8
スキーマ(USER01)が所有するすべての表を再編成します。
USER01は次の表を定義しているものとします。

 CREATE TABLE TABLE1(C1 INT) IN (BES1R01)
 CREATE TABLE TABLE2(C1 BLOB IN LOBUSER01) IN(BES2R01)
 CREATE TABLE TABLE3(C1 FREEWORD) IN(BES3R01)

[概要]
[図データ]
[入出力ファイルとRDエリアの関連図]
[図データ]
[実行するコマンドの説明]
スキーマ(USER01)が所有するすべての表を再編成します。なお,HiRDB/パラレルサーバでスキーマ単位の再編成をする場合,-g及び-jオプションの指定が仮定されます。
-k rorg:再編成をするときの指定
-t USER01.all:スキーマ(USER01)が所有するすべての表を対象とする場合の指定
control_file:制御情報ファイルの名称
[制御情報ファイル(control_file)の内容]

unload bes1:/hd001/unload_file1                   1
idxwork bes1 /hd001/idxwork                       2
sort bes1 /hd001/sortwork,8192                    3
idxwork bes2 /hd001/idxwork                       2
sort bes2 /hd001/sortwork,8192                    3
idxwork bes3 /hd001/idxwork                       2
sort bes3 /hd001/sortwork,8192                    3

[説明]
  1. アンロードデータファイルの指定
    bes1:アンロードデータファイルがあるサーバの名称
    /hd001/unload_file1:アンロードデータファイルの名称
  2. インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定
    bes1,bes2,bes3:インデクス情報ファイルを作成するサーバの名称
    /hd001/idxwork:インデクス情報ファイル用ディレクトリの名称
  3. ソート用ワークディレクトリの指定
    bes1,bes2,bes3:ソート用ワークファイルを作成するサーバの名称
    /hd001/sortwork:ソート用ワークファイルを作成するディレクトリの名称
    8192:ソート用バッファサイズ(単位:キロバイト)