赞
踩
//datname为数据库名称
select * from pg_stat_activity WHERE datname='aaa'
select * from pg_stat_activity where state = 'active'
//wait_event_type = 'Lock' 表示锁表线程
select * from pg_stat_activity WHERE datname='aaa' and wait_event_type = 'Lock'
//多个同时执行,返回结果为f
select pg_cancel_backend('上面查到的pid');
select pg_cancel_backend('上面查到的pid');
select pg_cancel_backend('上面查到的pid');
postgresql 在执行drop table和truncate table时候需要先申请排它锁 ACCESS EXCLUSIVE,获取这把锁之后才可以继续执行。但是如果同时这张表上还有操作正在进行,比如select操作,那么很不幸只有等待这个查询操作完成以后,drop table和truncate table才能获取这张表上的ACCESS EXCLUSIVE锁,后续的操作才能继续执行。
select
pg_terminate_backend(pid),
query
from
pg_stat_activity
where
query ~* 'order_table'
and pid <> pg_backend_pid();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。