【发布时间】:2015-12-20 02:44:17
【问题描述】:
我使用 IntelliJ Ultimate 来查询 Redshift,以及调试一些 Python 代码,这些代码正在对 Redshift 进行简单的单行插入。通常,插入语句在不到一秒的时间内完成,但它开始挂起。该查询似乎正在等待另一个查询持有的锁。
我使用这些查询(以及其他)来查看发生了什么:
select t."table", l.*, q.*
from stv_locks l
join svv_table_info t on (l.table_id = t.table_id)
join stl_query q on (l.lock_owner = q.xid)
select * from stv_inflight;
select * from stv_sessions;
我发现我之前在调试器中运行的 python 代码仍然持有写锁,即使在进程退出之后也是如此。我确定有问题的 pid 是 30461,所以我尝试使用以下命令终止会话:
select pg_terminate_backend(30461);
但是,这似乎没有任何效果。参考Amazon's documentation for pg_terminate_backend,我也试过在有问题的语句上使用CANCEL命令:
cancel 1311;
当我尝试执行时,IntelliJ 似乎没有将此语句发送到服务器,所以我使用了 psql 命令行工具。执行后,问题仍然存在,尽管谷歌搜索了很多,我还是找不到答案。看来我可能必须重新启动 Redshift 实例才能释放锁。
【问题讨论】:
标签: intellij-idea amazon-redshift