繁体   English   中英

有什么方法可以获取ActiveRecord / Rails / Postgres的查询进度(例如75%)?

[英]Is there any way to get query progress (e.g. 75%) for ActiveRecord / Rails / Postgres?

有什么方法可以估算ActiveRecord / Rails / Postgres的查询进度(例如75%)吗? 或者,如果我要关闭ActiveRecord,是否有办法实现?

Postgres没有直接的方法可以做到这一点。

可以使用Hadoop集群中的Hive查询来完成,尤其是当有大量的映射器和化简器时,因为它是一个分区查询,并且当查询完成时,它可以对其进度有所了解(尽管进度并不总是很顺利,因为并非所有数据都必须平均分配)。

Postgres中 ,由于只有一个查询,(当前)没有分区来完成零碎的工作并报告进度。 如果您真的想知道的话,我知道的最新方法就是strace运行查询的postgres进程,并查看正在读取的文件。 由于表在磁盘上的布局,因此可以根据正在读取的内容提供某种进度感。 但是,可以肯定的是,这与完成率是间接的关系,通常不值得麻烦IMO。

通常,最好的选择是确保所涉及表中的统计信息是最新的,然后查看查询计划,并尝试根据相关信息推断出相对的复杂性/潜在的执行时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM