PostgreSQL独占锁定停止应用程序

我的应用程序测试对数据库非常困难.它们运行create,drop和alter table语句.但是,我仍然期望postresql即使在死锁的情况下也能处理这些问题(即检测锁定并将一个线程删除).我也没有同时运行请求.

但是,在我的情况下,它只是冻结,我必须手动杀死它们(如果我稍微改变运行的顺序,它可以工作,但这不会给我信心).锁表明create table语句有一个独占锁,一个事务也有一个.

有没有人经历过类似的事?有没有可以提供帮助的服务器设置?或者只是任何建议?

解决方法

PostgreSQL自动检测死锁.最有可能的是,你只是在一些尚未完成的声明中阻止.仅当两个语句相互等待时才会发生死锁.

如果你检查你的“锁树”到根(d阻塞b阻塞在a上有一个根),你很可能会在某个地方找到一个需要很长时间才能运行的事务,或者没有正确提交的事务但只是处于“闲置交易”模式.

既然你提到了线程 – 请注意,所有客户端库在客户端都不一定是线程安全的.

相关文章

文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,...
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb...
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才...
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation...
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgr...
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解...