ページの先頭行へ戻る
Symfoware Server V10.0.0 トラブルシューティング集

9.6.3 データベースを再編成する

データベースを再編成する際によくある質問と、その回答について説明します。

オンライン業務中にデータベースの再編成は可能か?

rdbgcdsiコマンドで、データベースをDSI単位に再編成できます。
再編成対象のDSIだけをオフラインにすることにより、オンライン業務を行いながらデータベースの再編成することができます。再編成対象のDSIをオフラインにするには、rdbexdsiコマンドを使用します。

再編成には以下の2種類のモードがあります。

参照

詳細は、“RDB運用ガイド”の“DSIの動的切離し”、および“再編成”を参照してください。

データベースの再編成は必要か?

以下の場合に該当し、かつ、ひんぱんに挿入や削除を繰り返し行っている場合には、表やインデックスの格納効率が悪くなったり、検索性能などが悪くなる可能性があります。このような場合にはデータベースの再編成をお勧めします。

参照

詳細は、“RDB運用ガイド”の“再編成”を参照してください。

行排他を使用時に、DSI内に発生する削除領域同一トランザクションで再使用されない

行排他を使用する場合、DELETE文またはUPDATE文によりDSI内に発生する削除領域は、定義時にORDER(1)を設定していても同一トランザクションでは再使用されません。

たとえば、DSIの60%の領域に格納されているデータをDELETE文ですべて削除し、同一トランザクションで同じ件数をINSERT文により格納しようとしても、削除領域には格納されず領域不足のエラーとなります。自動容量拡張が設定されている場合は拡張が行われます。

バッチ業務などで大量の更新系のSQL文を発行する場合には、排他の単位をDSI単位またはページ単位にするか、COMMIT文によりトランザクションを細かく区切って実行してください。