DEALLOCATE pdo_stmt需要花费很多时间(天),这是正常的吗?

时间:2017-12-21 16:55:03

标签: postgresql laravel amazon-web-services amazon-rds postgresql-9.3

我正在调试我的PostgreSQL数据库,发现7个查询“DEALLOCATE pdo_stmt”已经运行了15天。

从PostgreSQL文档中读取,我发现这些查询应该在会话结束后解除分配准备好的语句,但我无法相信它可能需要花费很多时间。

此外,该公司的其他项目发现相同的查询已经运行了不寻常的时间。

数据库托管在AWS RDS上,使用Laravel 5.2进行访问。

我跑的查询是:

SELECT
 pid,
 now() - query_start as duration,
 query,
 state
FROM pg_stat_activity
 where now() - query_start  > interval '2 minutes'
 order by now() - query_start desc

结果是:

10169   15 days 23:52:04.697072 DEALLOCATE pdo_stmt_00000003    idle
10170   15 days 23:52:04.64288  DEALLOCATE pdo_stmt_00000003    idle
10171   15 days 23:52:04.616907 DEALLOCATE pdo_stmt_00000003    idle
10172   15 days 23:52:04.60968  DEALLOCATE pdo_stmt_00000003    idle
10174   15 days 23:52:04.604393 DEALLOCATE pdo_stmt_00000003    idle
10173   15 days 23:52:04.596357 DEALLOCATE pdo_stmt_00000003    idle
10175   15 days 23:52:04.591835 DEALLOCATE pdo_stmt_00000003    idle

1 个答案:

答案 0 :(得分:2)

没有什么可担心的。您没有看到当前正在运行的语句,只有在该数据库会话中执行的最新语句(可能正如您所假设的那样,只需要几毫秒)。

有关state列的可能值,请参见the documentation