监控数据库活动的另外一个有用的工具是 pg_locks 系统表。这样就允许数据库管理员查看在锁管理器里面未决锁的信息。比如,这个功能可以用于:
查看当前所有未决锁,所有在某一特定数据库里的关系上的锁,所有在特定关系上的锁,或者某一 PostgreSQL 会话持有的所有锁。
判断当前数据库里带有最多未批准锁的关系(它很可能是数据库客户端的竞争源)。
判断锁竞争给数据库性能带来的影响,以及锁竞争随着整个数据库流量的变化所产生的变化。
pg_locks 视图的细节在节43.39里。有关更多 PostgreSQL 的锁和管理并发性的信息,请参考章12。