获取运行PostgreSQL查询的执行时间
问题描述:
我在pgAdmin 4中针对Postgres 9.5数据库运行查询。有没有什么方法可以估计这个查询将运行多久?它现在运行近20个小时。获取运行PostgreSQL查询的执行时间
我只发现有关日志记录和类似信息以获取查询完成后的实际执行时间。
该查询即将在递归CTE中使用st_distance
订购约300,000个postGIS点。
SQL或Postgres有防止无限运行查询的机制吗?递归应该在某个时候停止,是否有办法查看最后构造的行,这会给我一个提示,查询在递归中有多远。
答
如果您的交易处于死锁状态,PostgreSQL可以通过杀死一个(或某些)涉及的交易来解决此问题。
否则,你必须掌握你在做什么。
当您使用EXPLAIN
(没有ANALYZE
)时,计划者正在估计您的查询持续时间,但此值必须被视为相对不绝对。