タグ付けされた質問 「autovacuum」

1
PostgreSQLで(AUTO)VACUUMプロセスをキャンセルすると、すべての作業が無駄になりますか?
場合によっては、大量のを作成した後update、insertまたはdeleteテーブルからVACUUM FULL ANALYZE、DBが肥大化していないことを確認するためにを開始しました。本番データベースでこれを行うと、長期間テーブルをブロックすることができたため、これは良いアイデアではなかったことがわかりました。それで、私はプロセスをキャンセルしました、多分ちょうどVACUUM(完全ではない)試みたか、AUTOVACUUMそれができることは何でも後でやらせ​​ます。 問題は、VACUUMまたはAUTOVACUUMを「途中」で停止すると、すでに実行されたすべての処理が失われるのですか? たとえば、VACUUMすでに100万のデッド行が見つかって停止した場合、この情報はすべて失われますか?VACUUMは完全にトランザクション的な方法で動作しますか(非常に多くのPostgreSQLプロセスのように、「すべてまたは何もない」)? すべての作業を失うことなくVACUUMを安全に中断できる場合、vacuum作業を段階的に行う方法はありますか?[100 ms動作し、停止し、10 ms待機して、残りの世界をブロックしないようにします...]。autovacuumパラメータを調整することでこれの一部を実行できることはわかっていますが、これをプログラムで制御できること、特定の時間/特定の条件下でそれを実行できるようにすることについて考えています。 注:プロセスを停止/キャンセル/強制終了するとは、次のことを意味します。 pgAdminを使用している場合は、[クエリのキャンセル]ボタンを押します。 プログラムで作業する場合は、pg_cancel_backend()を呼び出します。 どちらも同等だと思います。シェル/システムレベルのkillコマンドは使用していません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.