在针对一个不大的表格执行清空操作时,遇到了长时间执行且未返回结果的情况。网上搜索后,发现是遇到了死锁问题。
1. 可以在master节点,查询各进程并判断有可能是死锁的进程:
select gp_execution_dbid(), pid, relation::regclass, locktype, mode, granted from gp_dist_random('pg_locks');
2. 查看具体什么语句持有的锁
select gp_execution_dbid() dbid,procpid,current_query from gp_dist_random('pg_stat_activity') where procpid in (select pid from gp_dist_random('pg_locks') where locktype='relation' and mode='ExclusiveLock');
3.处理持有锁的pid
select pg_terminate_backend('procpid');
发表回复