スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

[目次][索引][前へ][次へ]

8.1.2 表の再編成

<この項の構成>
(1) 表の再編成とは
(2) LOB列がある表の場合の再編成
(3) 文字集合を定義した表の再編成
(4) ユティリティ専用ユニットを利用する場合
(5) 同期点指定の再編成
(6) UOCを利用した再編成

(1) 表の再編成とは

データの追加や削除を繰り返すと,表中の行の配置が乱れて,データのアクセス効率や格納効率が低下します。このような場合,表中のデータをいったんファイルに退避した後,そのファイルのデータを再度表に格納することで,データのアクセス効率,及び格納効率を改善できます。これを表の再編成といいます。

表の再編成は,表単位,又はRDエリア単位(横分割表の場合)に実行できます。

表の再編成の概要を次の図に示します。

図8-2 表の再編成の概要

[図データ]

(2) LOB列がある表の場合の再編成

LOB列がある表の場合,LOB列構成基表とLOB列を同時に再編成できます。また,別々に再編成することもできます。

LOB列構成基表とは,LOB列がある表のLOB列を除いた部分のことをいいます。また,LOB列とは,データ型がBLOBの列のことをいいます。

同時に再編成する場合は,-jオプションを指定すると,性能が良くなります。-jオプションを指定しない再編成は,LOB列構成基表又はLOB列のどちらかを再編成する場合に採用してください。

プラグインが提供する抽象データ型がユーザLOB用RDエリアに格納されている場合,抽象データ型はLOB列構成基表と同時に再編成するか,又は再編成対象外にできます。

LOB列がある表の再編成を次の図に示します。

図8-3 LOB列がある表の再編成

[図データ]

[説明]
LOB列構成基表(列A,列B)のデータは,アンロードデータファイルへ退避します。
LOB列(列C)のデータは,LOBデータのアンロードファイルへ退避します。
-gオプション,及び-jオプションを指定すると,LOB列構成基表,及びLOB列のデータをまとめてアンロードデータファイルへ退避することもできます。

(3) 文字集合を定義した表の再編成

表の再編成をする場合にpdrorgが出力するアンロードデータファイルは一時ファイルのため,文字集合の列のデータに対して文字コード変換をしないでアンロードします。リロード時も文字コード変換をしないでデータベースに格納します。ただし,UOCを利用する場合は,文字集合が定義された列データに対して文字コード変換をしてアンロードデータファイルに出力します。

(4) ユティリティ専用ユニットを利用する場合

HiRDB/シングルサーバで表の再編成をする場合,ユティリティ専用ユニットを利用できます。ユティリティ専用ユニットには,アンロードデータファイルを設置できます。ユティリティ専用ユニットを利用した場合の表の再編成を次の図に示します。

図8-4 ユティリティ専用ユニットを利用した場合の表の再編成

[図データ]

(5) 同期点指定の再編成

通常,表の再編成をするときは,すべてのデータをリロードした後にトランザクションを決着します。ユティリティが途中で異常終了した場合は,最初の時点までロールバックしてしまいます。このため,再実行時は最初からし直すことになります。

同期点指定の再編成の場合,任意のデータ件数単位にトランザクションを決着できます。これによって,ユティリティが異常終了した場合のロールバック時間や再実行時間を短縮できます。

なお,アンロード処理,インデクスの一括作成,及びLOB列への再編成処理の場合は,同期点指定の再編成は適用されません。この場合は,すべての処理が完了してからトランザクションが決着します。

同期点指定の再編成をする場合,option文(jobオペランド)を指定します。同期点指定の再編成の概要を次の図に示します。

図8-5 同期点指定の再編成の概要

[図データ]

[説明]
最初の実行では,障害発生後にロールバックします。200万件の時点でトランザクションが決着しているため,ロールバックするのは200万件の時点までです。
再実行では,既存の表データの削除処理,及び200万件までのデータ格納処理をスキップし,それ以降のデータ格納処理をします。

(6) UOCを利用した再編成

ユーザが作成したプログラム(UOC)を利用して再編成ができます。

UOCを利用した再編成の場合,データベースから検索したデータを直接アンロードデータファイルへ出力するのではなく,データをUOCに渡して編集して出力できます。

例えば,大量のデータを削除する場合など,データベースから検索したデータをUOCでチェックしてアンロードデータファイルに出力するかどうかの判定をして,その結果生成されたアンロードデータファイルからリロードすると,空きページが点在しない(使用中空きページがない)再編成直後の形でデータ削除ができます。また,UOCを使用してアンロードすると,任意のフォーマットでのデータの出力もできます。