Redshift データベース内のそれほど大きくないテーブル (400 万行) を削除または切り捨てると、完了するまでに非常に長い時間 (数時間) かかります。同じ問題を経験している人はいますか?
ありがとう
ベストアンサー1
Redshift は非常に高速な I/O を備えているため、クラスターの種類やサイズに関係なく、操作にかかる時間は 1 秒未満です。diemacht が言ったように、この問題は、開いているトランザクションとの別の接続があるために発生します。
私も同様の問題を抱えていました: クライアントのクラッシュにより、トランザクションが「オープン」のままになりましたが、アクセスできません。STV_LOCKS テーブルに DB ロックが表示されませんでした: ( を使用select table_id, last_update, lock_owner, lock_owner_pid from stv_locks;
)
また、まだ実行中のクエリはありませんでした: (確認済み: select pid, trim(user_name), starttime, query , substring(query,1,20), status from stv_recents where status='Running';
)
したがって、解決策は、ユーザー セッションを一覧表示し、SELECT * FROM STV_SESSIONS
次のコマンドを使用してそれを強制終了することでした。SELECT pg_terminate_backend(pid)
または KILL'EM ALL バージョン:
SELECT pg_terminate_backend(process) FROM STV_SESSIONS where user_name='user_name' and process != pg_backend_pid();
動作しなかったことに注意してくださいCANCEL {pid}
(クエリはキャンセルされましたが、トランザクションはまだ開いていてロックされています)。