首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行顺序扫描对SELECT语句,但不对SELECT .转到

问并行顺序扫描对SELECT语句,但不对SELECT .转到
EN

Database Administration用户
提问于 2018-02-20 08:04:13
回答 1查看 1.2K关注 0票数 0

以下查询

代码语言:javascript
复制
EXPLAIN
SELECT c.global_id
FROM centers_res17 AS c
LEFT JOIN regions_res17 AS r ON ST_Contains(r.wkb_geometry, c.wkb_geometry)
WHERE r.global_id IS NULL;

表示将在centers_res17上使用并行顺序扫描。这很好,查询速度也很快(使用了8个工作人员,CPU很忙)

现在,如果我执行SELECT c.global_id INTO foo,查询计划表示顺序扫描,这要慢得多。

我试着:

  • CREATE之前的foo表(也作为TEMP)
  • 将上述语句包装在WITH子句中,然后将其结果选择到foo中。
  • CREATE foo AS (^^Above statement^^)

上述任何操作都不使用多个工作人员进行并行顺序扫描(根据查询计划并实际运行查询)。我只需让select语句‘原样’,然后复制粘贴值从我的结果窗口.不是最优的。

请向我解释为什么没有使用并行顺序扫描,或者如何修改我的查询,以便将结果选择到foo中。

我在Win10上使用了Win10 9.6。

EN

回答 1

Database Administration用户

发布于 2018-02-20 08:14:38

从手册中引用

如果下列任何一项为真,规划者将不会为给定的查询生成它们

  • 查询写入任何数据或锁定任何数据库行。如果查询包含顶级或CTE中的数据修改操作,则不会为该查询生成并行计划。这是对当前实现的限制,可以在以后的版本中取消。

当您将行插入到表中时,底层查询将永远不会使用并行性,至少在当前版本(10)和更早版本中不会使用。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/198342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档