データベース・オブジェクトの変更を行うときに、データをアンロードしてから、データ・オブジェクトにロードすることが必要な場合があります。
また、特定の DB2® メンテナンス・コマンドが変更コマンドに含まれていると、
確実にパッケージが再バインドされ、統計が更新されて、データが再編成されるようにする場合に役立ちます。
データ保存は、デフォルトで有効になっています。
IBM® Data Studio によって破壊変更の発生が検出された場合 (これは、オブジェクトをドロップして再作成する必要があることを意味します)、
データはアンロードされ、その後、新しく作成されたオブジェクトに再度ロードされます。
さらに、必要に応じて、DB2 メンテナンス・コマンドのサブセットも、生成された変更コマンドにデフォルトで含められます。
これらのデフォルトのオプションを変更することができます。
データの保存
データ保存は、以下の場合に有用です。
- 破壊変更を実行する場合
- 変更のために表をドロップし、その後、再作成する必要がある場合、データをアンロードしてから、新しく作成された表にロードする必要があります。
- 表をドロップするとき
- 後で使用できるよう、ドロップされた表のデータをファイルに保管することが必要な場合があります。
例えば、変更を取り消して、データを復元することが必要な場合があります。
- 表をドロップするとき
- 後で使用できるよう、ドロップされた表のデータをファイルに保管することが必要な場合があります。
例えば、変更を取り消して、データを復元することが必要な場合があります。
- 表を作成するとき
- 別の表からその表にデータを取り込む必要がある場合があります。「マイグレーション」メインメニュー項目
の下の「データのマイグレーション」アクションを使用して、データを表にマイグレーションすることができます。
- 表から表にデータをマイグレーションする場合
- データをソース表からアンロードしてから、そのデータをターゲット表にロードする必要があります。
「マイグレーション」メインメニュー項目
の下の「データのマイグレーション」アクションを使用して、データをマイグレーションすることができます。
アンロードおよび再ロード・コマンドの方式
IBM Data Studio では、
エクスポート・ユーティリティーを使用してデータをアンロードし、インポート・ユーティリティーを使用してデータをロードします。
エクスポート・ユーティリティーでは IXF ファイル・フォーマットが使用されますが、いくつかの例外があります。
例えば、データ・パーティション環境では、代わりに DEF ファイル・フォーマットが使用されます。
トリガーのある表にデータが再ロードされるとき、トリガーはアクティブになりません。
ロード・ユーティリティーは、トリガーに関連付けられたビジネス・ルールを実施することができません。
DB2 メンテナンス・コマンド
変更を行うときには、特定のデータベース・パッケージが作動不能になったり、統計が不正確になったりする可能性があります。
例えば、オブジェクトのドロップ時には、DB2 によってパッケージに無効または作動不能のマークが付けられます。
再バインド・コマンドを発行し、最新の統計に基づいて、パッケージを再作成する必要があるかもしれません。
必要に応じて、以下のコマンドが、生成されたコマンドにデフォルトで含められますが、これらのコマンドを含めないことを選択できます。
- RUNSTATS コマンド
- データベースが変更された後、またはデータが表にロードされた後、統計を再生成することが重要です。
- REORG コマンド
- 表に変更があったときは、すべての索引を再編成する必要があります。
また、表スペースの変更時には、すべての表と索引を再編成する必要もあります。
さらに、再編成したデータを利用するために、アプリケーション・パッケージをすべて再バインドする必要もあります。
- REBIND コマンド
- 変更コマンドの中に以下の DROP ステートメントが含まれている場合、パッケージを再バインドする必要があります。
- TABLE
- TRIGGER
- MQT
- UDF
- VIEW
- ALIAS
- INDEX
- STRUCTURE TYPE
変更を複数回実行した場合も、パフォーマンスの向上のために、パッケージを再バインドしてください。
変更プランに定義された変更によって影響を受けるパッケージに対しては、IBM Data Studio により再バインド・コマンドが生成されます。
- FLUSH CACHE PACKAGE ステートメント
- 統計の更新後、パッケージ・キャッシュをフラッシュすることによって、更新後の統計が動的 SQL ステートメントで使用されるようにして、
データベース・パフォーマンスを高めるようにしてください。