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