2

我有一个问题 - 当查询包含在“CREATE TABLE”中时,查询处理中的并行性现在似乎可以在我的数据库上工作。

Plain SELECT 完美地并行处理,因此非常快。并行性也显示在 EXPLAIN 输出中,我还可以在“顶级”监控中看到后台工作人员。所以它比第 9.5 页要好得多。

但是当我在 CREATE TABLE 中使用相同的 SELECT 时,它会运行很长时间而不是并行运行。它比第 9.5 页要慢得多。这种情况下的并行性未显示在 EXPLAIN 输出中,并且操作系统中没有运行后台工作程序。我试图设置 "force_parallel_mode" = ON 但没有任何改变。

是否有一些我错过的神奇设置应该从标准设置更改为在 CREATE TABLE 中也使用并行性?或者这种预期行为是“设计使然”的?

更新:好的,似乎是“设计使然” - CTE 上的并行查询,用于在 PostgreSQL 中编写操作

但在那种情况下,CREATE TABLE as SELECT 与 9.5 相比,在 9.6 上的性能似乎很差......

  1. 更新:看起来 PostgreSQL 9.6 需要比 9.5 更高的 work_mem 设置 - 我摆弄了运行不佳的查询的查询计划,发现只需更改会话中的 work_mem 设置,我就可以从“排序(成本=807568233.23..807568267.50 行= 13709 width=105)" for work_mem=32MB 到 "Sort (cost=151127.62..151161.89 rows=13709 width=105)" for work_mem=64MB...
4

0 回答 0