避免等锁
更新时间:
复制 MD 格式
查看指定表上当前锁持有情况和对应持有锁的SQL
命令如下:
select * from gp_toolkit.gp_locks_on_relation where lorrelname='<table>';
如果需要结束查询来释放锁,可以通过select pg_terminate_backend(lorpid)来结束,示例如下。
lorpid 列找到持锁进程 ID,使用 pg_terminate_backend 终止该进程后再次查询确认锁已释放。
i17adb=# select * from gp_toolkit.gp_locks_on_relation where lorrelname='t1';
lorlocktype | lordatabase | lorrelname | lorrelation | lortransaction | lorpid | lormode | lorgranted | lorcurrentquery
------------+-------------+------------+-------------+----------------+--------+-----------------+------------+---------------------
relation | 16392 | t1 | 16407 | | 106099 | AccessShareLock | t | select * from tn1.t1;
(1 row)
i17adb=# select pg_terminate_backend(106099);
pg_terminate_backend
----------------------
t
(1 row)
i17adb=# select * from gp_toolkit.gp_locks_on_relation where lorrelname='t1';
lorlocktype | lordatabase | lorrelname | lorrelation | lortransaction | lorpid | lormode | lorgranted | lorcurrentquery
------------+-------------+------------+-------------+----------------+--------+---------+------------+-----------------
(0 rows)
该文章对您有帮助吗?