web-dev-qa-db-ja.com

作業中に大きなテーブルを別のテーブルスペースに移動しても安全ですか?

大きな肥大化したテーブルが1つあります(実際のデータサイズは約65 Gb、ディスク上で140 Gb)。デフォルトのテーブルスペースディスクの空き容量が少ないため、バキュームが機能しません。したがって、ファットテーブルを別のテーブルスペースに移動し、それらをバキュームして元に戻すことにより、データベースをゴミ箱からクリーンアップしたいと思います。

そのテーブルで動作するサービスをオフにせずに安全に実行できますか? 1分あたり約15の個別の1行挿入および〜7 選択 1回です。

そして、さらにいくつかの重要でない質問:

  1. このような負荷で機能する自動バキュームテーブルについて、どのマニュアル/ガイドまたはパラメータ設定をアドバイスしますか。
  2. 挿入の頻度で古いデータ削除操作を渡すか、行の大きなスタック(毎日、毎週、毎月など)を削除する方が良いですか?
1
artem.a

テーブルは、新しいテーブルスペースに移動している間はAccessExclusiveでロックされるため、アプリケーションはその間に停止します。

ワークロードが何であるかを実際に説明していないため、それに対応するための設定を推奨することは困難です。確かに、既存の膨張につながるのは、15の個別の1行の挿入と1分あたり最大7つの選択操作ではなかったのでしょうか。

通常、行が削除の対象であることがわかったら、行を削除することをお勧めします。削除キューテーブルの作成は、肥大化する可能性がある、維持する必要がある、テーブル自体で削除を行う、バキュームする、それに対応するようにコードを記述するなどの可能性がある別のテーブルです。

0
jjanes