greenplum数据库-锁

在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对数据库的事务进行并发控制。

greenplum数据库,基本两种锁:

  • RowExclusiveLock: 行级排他锁,不允许读取和修改。
  • AccessShareLock:共享锁,允许读取,不允许修改。

1.GP查看锁

复制代码
-- 通过表名,获取该表是否被锁,然后按照lorpid字段进行升序排序
select * from gp_toolkit.gp_locks_on_relation t where t.lorrelname = '#{table_name}' order by lorpid;

多个事务同时在数据库中运行时,查看GP库所有表锁

sql 复制代码
SELECT 
l.pid,
a.datname AS database,
c.relname AS table,
l.mode AS lock_mode,
l.granted AS granted,
a.usename AS username,
a.query AS query
FROM 
pg_locks l
JOIN 
pg_stat_activity a ON l.pid = a.pid
JOIN 
pg_class c ON l.relation = c.oid

2.解锁

复制代码
-- 按照lorpid,自上而下,进行删除进程,将排他锁之前的共享锁停止后,排他锁可正常运行。
select pg_cancel_backend('#{pid}')
/* 
select pg_terminate_backend(#{pid}) 
*/

参考文章:

https://www.jianshu.com/p/763eb183a291

相关推荐
瓯雅爱分享2 小时前
Java+Vue构建的采购招投标一体化管理系统,集成招标计划、投标审核、在线竞价、中标公示及合同跟踪功能,附完整源码,助力企业实现采购全流程自动化与规范化
java·mysql·vue·软件工程·源代码管理
BTU_YC4 小时前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农4 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8245 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
诸神缄默不语5 小时前
Maven用户设置文件(settings.xml)配置指南
xml·java·maven
任子菲阳5 小时前
学Java第三十四天-----抽象类和抽象方法
java·开发语言
苏打水com5 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
学Linux的语莫6 小时前
机器学习数据处理
java·算法·机器学习
找不到、了6 小时前
JVM的即时编译JIT的介绍
java·jvm
shan~~6 小时前
linux达梦数据库操作
linux·数据库·chrome