pgrowlocks 是一个 contrib 模块,它提供了一个名为 pgrowlocks() 的函数,用于显示指定表的行锁定信息。
pgrowlocks 在 PostgreSQL 8.2 中添加。
变更历史
- PostgreSQL 17
- 标签
Share和Key Share已更改为For Share和For Key Share(提交 15d5d740)
- 标签
- PostgreSQL 10
- PostgreSQL 9.6 (版本 1.2)
- 添加了
并行查询支持 (提交 9164deea)
- 添加了
- PostgreSQL 9.3 (版本 1.1)
- 对
pgrowlocks()结果列进行了以下更改 (提交 0ac5ad51)
- 删除了列
lock_type - 添加了列
mode
- 删除了列
- 对
- PostgreSQL 9.1(版本 1.0)
- PostgreSQL 8.2
- 添加 (提交 66126f96)
示例
pgrowlocks 的使用示例
ostgres=# CREATE EXTENSION pgrowlocks ; CREATE EXTENSION postgres=# CREATE TABLE foo (id INT PRIMARY KEY, val TEXT); CREATE TABLE postgres=# INSERT INTO foo values(generate_series(1,10)); INSERT 0 10 postgres=# BEGIN; BEGIN postgres=*# UPDATE foo SET val = id::TEXT WHERE id < 3; UPDATE 2 postgres=*# UPDATE foo SET id = 11 WHERE id = 10; UPDATE 1
从不同会话执行 pgrowlocks()
postgres=# SELECT * FROM pgrowlocks('foo');
locked_row | locker | multi | xids | modes | pids
------------+--------+-------+-------+-------------------+-----------
(0,1) | 524 | f | {524} | {"No Key Update"} | {3583444}
(0,2) | 524 | f | {524} | {"No Key Update"} | {3583444}
(0,10) | 524 | f | {524} | {Update} | {3583444}
(3 rows)
参考资料
- PostgreSQL 文档: pgrowlocks
