DEALLOCATE pdo_stmt 花费了很多时间(天),这正常吗?

DEALLOCATE pdo_stmt it's taking to much time (days), is it normal?

我正在调试我的 PostgreSQL 数据库,发现 "DEALLOCATE pdo_stmt" 的 7 个查询已经 运行 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

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

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