スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)
データの追加や削除を繰り返すと,表中の行の配置が乱れて,データのアクセス効率や格納効率が低下します。このような場合,表中のデータをいったんファイルに退避した後,そのファイルのデータを再度表に格納することで,データのアクセス効率,及び格納効率を改善できます。これを表の再編成といいます。
表の再編成は,表単位,又はRDエリア単位(横分割表の場合)に実行できます。
表の再編成の概要を次の図に示します。
図8-2 表の再編成の概要
LOB列がある表の場合,LOB列構成基表とLOB列を同時に再編成できます。また,別々に再編成することもできます。
LOB列構成基表とは,LOB列がある表のLOB列を除いた部分のことをいいます。また,LOB列とは,データ型がBLOBの列のことをいいます。
同時に再編成する場合は,-jオプションを指定すると,性能が良くなります。-jオプションを指定しない再編成は,LOB列構成基表又はLOB列のどちらかを再編成する場合に採用してください。
プラグインが提供する抽象データ型がユーザLOB用RDエリアに格納されている場合,抽象データ型はLOB列構成基表と同時に再編成するか,又は再編成対象外にできます。
LOB列がある表の再編成を次の図に示します。
図8-3 LOB列がある表の再編成
表の再編成をする場合にpdrorgが出力するアンロードデータファイルは一時ファイルのため,文字集合の列のデータに対して文字コード変換をしないでアンロードします。リロード時も文字コード変換をしないでデータベースに格納します。ただし,UOCを利用する場合は,文字集合が定義された列データに対して文字コード変換をしてアンロードデータファイルに出力します。
通常,表の再編成をするときは,すべてのデータをリロードした後にトランザクションを決着します。ユティリティが途中で異常終了した場合は,最初の時点までロールバックしてしまいます。このため,再実行時は最初からし直すことになります。
同期点指定の再編成の場合,任意のデータ件数単位にトランザクションを決着できます。これによって,ユティリティが異常終了した場合のロールバック時間や再実行時間を短縮できます。
なお,アンロード処理,インデクスの一括作成,及びLOB列への再編成処理の場合は,同期点指定の再編成は適用されません。この場合は,すべての処理が完了してからトランザクションが決着します。
同期点指定の再編成をする場合,option文(jobオペランド)を指定します。同期点指定の再編成の概要を次の図に示します。
図8-4 同期点指定の再編成の概要
ユーザが作成したプログラム(UOC)を利用して再編成ができます。
UOCを利用した再編成の場合,データベースから検索したデータを直接アンロードデータファイルへ出力するのではなく,データをUOCに渡して編集して出力できます。
例えば,大量のデータを削除する場合など,データベースから検索したデータをUOCでチェックしてアンロードデータファイルに出力するかどうかの判定をして,その結果生成されたアンロードデータファイルからリロードすると,空きページが点在しない(使用中空きページがない)再編成直後の形でデータ削除ができます。また,UOCを使用してアンロードすると,任意のフォーマットでのデータの出力もできます。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.