Postgresql超慢

Postgresql超慢,postgresql,postgresql-9.4,Postgresql,Postgresql 9.4,在300ms到32秒之间更新包含2行的表中的一行。(似乎是完全随机的,并且系统在更新期间处于空闲状态。)。有没有什么有用的提示或工具,我可以用来窥探postgres到底在做什么或在等什么 注意:postgres位于x64 windows环境上表中有任何触发器吗?last\u stick是否已编制索引?您是否尝试禁用Postgres数据目录的防病毒功能?那是什么类型的硬盘?(顺便说一句:避免引用标识符-它们比它们值得的麻烦多了)我喜欢防病毒技巧,我会试试!该系统是超高速和数据库是在一个希捷猛禽硬盘

在300ms到32秒之间更新包含2行的表中的一行。(似乎是完全随机的,并且系统在更新期间处于空闲状态。)。有没有什么有用的提示或工具,我可以用来窥探postgres到底在做什么或在等什么


注意:postgres位于x64 windows环境上

表中有任何触发器吗?
last\u stick
是否已编制索引?您是否尝试禁用Postgres数据目录的防病毒功能?那是什么类型的硬盘?(顺便说一句:避免引用标识符-它们比它们值得的麻烦多了)我喜欢防病毒技巧,我会试试!该系统是超高速和数据库是在一个希捷猛禽硬盘。。。我通过修改一个连接到DB上的脚本解决了我的问题(没有确切理解它为什么会慢那么多),但我会听取任何建议来调试这种情况,以防再次发生……“通过修改连接到DB上的脚本”,那是什么脚本?你到底改变了什么?脚本打开了两个连接,一个用于监听(使用pgsqllisten函数),另一个用于执行一些轻计算。现在,我只使用了一个连接,数据库再次运行良好。我相信这是PHP postgresql驱动程序的一种奇怪行为。。。然而,如果postgres有一个详细的模式让查询知道他到底在做什么,那就太酷了。。。(我知道解释,但这不是我要搜索的。)有并发会话吗?我猜这和锁有关。如果您使用的是9.4,请启用
log\u lock\u waitis
2015-04-13 07:24:12 CEST LOG:  duration: 21427.285 ms  plan:
Query Text: UPDATE "User" set last_stick=NOW() where id=2;
Update on "User"  (cost=0.00..2.03 rows=1 width=286) (actual time=21427.282..21427.282 rows=0 loops=1)
  ->  Seq Scan on "User"  (cost=0.00..2.03 rows=1 width=286) (actual time=0.020..0.022 rows=1 loops=1)
        Filter: (id = 2)
        Rows Removed by Filter: 1