如何在Postgresql中将并行化SELECT查询的结果插入表中?

时间:2017-11-03 09:31:56

标签: postgresql postgresql-performance

根据https://www.postgresql.org/docs/current/static/when-can-parallel-query-be-used.html

  

“即使并行查询计划通常也是如此   如果生成,计划程序将不会为给定的查询生成它们   以下是真实的:       查询会写入任何数据或锁定任何数据库行。如果查询包含顶级或内部的数据修改操作   CTE,不会生成该查询的并行计划。这是一个   当前实施的限制可以解除   未来发布。“

确实,当我尝试将并行 SELECT 查询的结果插入表格时(通过 SELECT.. INTO WITH..SELECT..INTO ),查询不会作为并行查询执行。

我的问题是:有没有办法欺骗Postgresql,以便 SELECT 查询作为并行查询执行,然后将其结果插入一张桌子?

1 个答案:

答案 0 :(得分:0)

psql -o参数有一个技巧。

<强>步骤1:

seek()

<强>步骤2:

call psql -h localhost -d dbname -U username -c "select * from vw_FBigTable_extract" -o FBigTable_extract.csv -A -t -F ","

有时比非并行方法更快地工作。