我在 Windows 7 笔记本电脑上运行 postgresql 9.6。没有其他人连接到数据库。我在 Pgadmin4 的查询工具中运行了插入 SQL。大约20分钟后查询结束。记录已插入,pg_stat_activity 中的状态从活动状态变为空闲状态,我通过打开另一个查询工具窗口进行了检查。但运行查询的原始窗口继续被冻结,并显示消息
“等待查询执行完成”
我该如何解决这个问题。我做了一些研究。这是否与 TCP/IP 连接断开有关,如下面的链接所述
和
链接 2(在“与数据库的连接已删除”下)
重新启动 pgadmin 并再次尝试查询。
截至 2018 年,pgadmin 似乎对连接超时的处理非常糟糕,因此您通常需要在一段时间不使用后重新启动整个 pgadmin 应用程序,然后再次经历扩展树的过程以直接到达表与你一起工作。
不完全是一个解决方案,但找到了解决办法。问题是,查询执行后它正在运行 autovacuum,甚至在它结束后,pgadmin 仍保持冻结状态。我在配置文件中禁用了 autovacuum,它开始正常工作。不确定这是否会对性能或其他方面产生任何影响。会看到。
请勿使用“localhost”或“127.0.0.1”作为主机。请改用您的 IP 地址。这解决了我这边的问题。