# F.29.pgrowlocks
这个pgrowlocks
模块提供显示指定表的行锁定信息的功能。
默认情况下,仅限超级用户使用,即pg_统计_扫描_表格
角色,以及选择
表上的权限。
# F.29.1.概述
pgrowlocks(text) returns setof record
参数是表的名称。结果是一组记录,表中每个锁定行对应一行。输出列如中所示表F.20.
表F.20.pgrowlocks
输出列
名称 | 类型 | 描述 |
---|---|---|
锁定的_排 | tid | 锁定行的元组ID(TID) |
储物柜 | 希德 | 储物柜的交易ID,或多交易时的多X ID |
多种 | 布尔值 | 如果locker是多个Transaction,则为True |
xids | xid[] | 储物柜的交易ID(如果多次交易,则不止一个) |
模式 | 文本[] | 储物柜的锁定模式(如果多个交易,则不止一个),一系列关键份额 , 共有 , 无需密钥更新 , 没有密钥更新 , 更新 , 使现代化 . |
皮兹 | 整数[] | 锁定后端的进程ID(如果是多个事务,则不止一个) |
pgrowlocks
拿访问共享锁
并逐行读取以收集行锁定信息。这对于一张大桌子来说不是很快。请注意:
如果
访问独占
锁放在桌子上,pgrowlocks
将被阻止。pgrowlocks
不能保证生成自一致的快照。在执行过程中,可能会获取一个新的行锁,或者释放一个旧锁。
pgrowlocks
不显示锁定行的内容。如果您想同时查看行内容,可以执行以下操作:
SELECT * FROM accounts AS a, pgrowlocks('accounts') AS p
WHERE p.locked_row = a.ctid;
但是,请注意,这样的查询效率很低。
# F.29.2.样本输出
=# SELECT * FROM pgrowlocks('t1');
locked_row | locker | multi | xids | modes | pids
### F.29.3. Author
Tatsuo Ishii