約のテーブルがあります。 2億行(約0.5 TB)でドロップしたいのですが、非常に時間がかかります。
2日間稼働しています。これは、ロールバック機能が原因だと思います。
このプロセスをスピードアップできるように、ロールバック機能を回避する方法はありますか?テーブルを削除したいのは、そこにあるデータにはもう価値がないからです。
実行中のバックエンドをリストすることができます
_SELECT * FROM pg_stat_activity;
_
このテーブルで動作している何かをロールバックしようとしているプロセスを特定します。
そのpid
を見つけます。
クエリSELECT pg_terminate_backend(64738)
を使用してバックエンドを終了できます。ここで、64738は以前のSELECT
のpid列です。
その後、おそらくそのテーブルをDROPできます。
それでもうまくいかない場合は、postgresqlを再起動しますが、おそらく再起動します。