STV_LOCKS
使用 STV_LOCKS 表可以查看数据库中各个表的所有当前更新。
Amazon Redshift 锁定表以防止两个用户同时更新同一个表。STV_LOCKS 表显示所有当前表更新,而查询 STL_TR_CONFLICT 表则可查看锁定冲突的日志。使用 SVV_TRANSACTIONS 视图可标识未结事务和锁定争用问题。
STV_LOCKS 仅对超级用户可见。有关更多信息,请参阅 系统表和视图中的数据可见性。
表列
列名称 | 数据类型 | 描述 |
---|---|---|
table_id | bigint | 获取锁定的表的表 ID。 |
last_commit | timestamp | 表中上次提交的时间戳。 |
last_update | timestamp | 表上次更新的时间戳。 |
lock_owner | bigint | 与锁定关联的事务 ID。 |
lock_owner_pid | bigint | 与锁定关联的进程 ID。 |
lock_owner_start_ts | timestamp | 事务开始时间的时间戳。 |
lock_owner_end_ts | timestamp | 事务结束时间的时间戳。 |
lock_status | character (22) | 进程状态(等待锁或持有锁)。 |
示例查询
要查看当前事务中发生的所有锁定,请键入以下命令:
select table_id, last_update, lock_owner, lock_owner_pid from stv_locks;
此查询返回以下示例输出,其中显示三个当前生效的锁定:
table_id | last_update | lock_owner | lock_owner_pid ----------+----------------------------+------------+---------------- 100004 | 2008-12-23 10:08:48.882319 | 1043 | 5656 100003 | 2008-12-23 10:08:48.779543 | 1043 | 5656 100140 | 2008-12-23 10:08:48.021576 | 1043 | 5656 (3 rows)