Postgresql 正在为>1个同时事务锁定表

Postgresql 正在为>1个同时事务锁定表,postgresql,locking,Postgresql,Locking,在特定场景中,我有>1个事务访问一个表,选择并更新。我可以通过查询在pg_locks视图中看到 SELECT relation::regclass, * FROM pg_locks WHERE NOT granted; 直到锁被解除,我的第二笔交易被阻止,这个查询给我结果。在我的第二笔交易开始进行后,此条目将丢失。所以我假设这张桌子告诉我锁的事 但如果我的上述假设是正确的,我想确认哪个表被锁定。我如何解决这个问题,因为在大数据的情况下,这会给我的应用程序带来性能问题。请显示相互阻塞的完整语句

在特定场景中,我有>1个事务访问一个表,选择并更新。我可以通过查询在pg_locks视图中看到

SELECT relation::regclass, * 
FROM pg_locks WHERE NOT granted;
直到锁被解除,我的第二笔交易被阻止,这个查询给我结果。在我的第二笔交易开始进行后,此条目将丢失。所以我假设这张桌子告诉我锁的事


但如果我的上述假设是正确的,我想确认哪个表被锁定。我如何解决这个问题,因为在大数据的情况下,这会给我的应用程序带来性能问题。

请显示相互阻塞的完整语句。根据您提供的信息,这是不可能回答的。也显示实际的pg_锁线。否则我们不知道你在看什么。我想说您看到了不同的锁类型。请选择pg_class.relname,pg_locks.*从pg_class,pg_locks,其中pg_class.relfilenode=pg_locks.relation和类似“%RowExclusive%”的模式;给了我想要的东西。