pg_locks视图

pg_locks视图字段属性信息

字段类型描述
locktypetext锁定对象的类型
databaseoid对象所在的数据的oid
relationoid关系的oid,如果对象不是关系,也不是关系的一部分,则为null
pageinteger关系内部的页面编号,如果对象不是元组页不是关系页,则为null
tuplesmallint页面里面的元组编号
virtualxid虚拟事务id,表示这个锁对象是一个虚拟事务
transactionidxid事务的ID
classidoid包含该对象的系统表的oid
objidoid对象在其系统表内的oid
objsubidsmallint对于表的一个字段,这是字段编号;对于其他对象类型,这个字段是0;如果这个找对象不是普通数据对象,则为null
virtaultransactionxid持有或等待这把锁的虚拟事务id
pidinteger持有或者等待这个锁的服务器进程的进程ID
modetext这个进程持有的或者是期望的锁模式
grantedboolean如果持有锁,为真,等待锁则为假
fastpathbooleanfastpath锁
-- 查看锁信息
select * from pg_locks;
locktype  |database|relation|page|tuple|virtualxid|transactionid|classid|objid|objsubid|virtualtransaction|pid  |mode           |granted|fastpath
----------|--------|--------|----|-----|----------|-------------|-------|-----|--------|------------------|-----|---------------|-------|--------
relation  |   13287|   11645|    |     |          |             |       |     |        |3/16              |14002|AccessShareLock|true   |true    
virtualxid|        |        |    |     |3/16      |             |       |     |        |3/16              |14002|ExclusiveLock  |true   |true    


-- 查看是否有等待锁
-- postgresql不管什么操作,只要请求的锁与已有或已经在队列中的lock级别有冲突就会出现等待。
select locktype,transactionid,database,relation,mode
from pg_locks where not granted;

虚拟事务

每产生一个事务id,都会在commit log文件中占用2bit。但有些事务没有产生任何实质的变更,比如只读事务或空事务,给它们也分配一个事务ID就很消费。因此,对这类没有实质变更的事务,只分配虚拟事务ID,不分配事务ID,不占用2bit的空间。

主要锁类型

  1. Spinlocks:自旋锁,其保护的对象一般是数据库内部的一些数据结构,是一种轻量级的锁
  2. LWLocks:轻量锁,也是主要用于保护数据库内部的一些数据结构,支持独占和共享两种模式
  3. SIReadLock predicate locks:谓词锁,主要是用来表示数据库对象和事务间的一个特定关系
  4. Regular locks:又叫heavy weight locks,也就是常说的表锁,行锁等这些

fathpath参考文档:https://blog.csdn.net/weixin_46199817/article/details/119210820

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值