gpt4 book ai didi

sql - 并行化 oracle 联合查询问题

转载 作者:行者123 更新时间:2023-12-01 01:26:03 24 4
gpt4 key购买 nike

我有一个像这样的 Oralce 查询:

Sub_query1
Union
Sub_query2;

我想并行化查询。我在网上搜索,发现有人说 UNION 不能并行化,因为子查询是串行运行的,而 UNION 在两个子查询完成之前不会运行。人们说 UNION 可以并行化。
我的问题是:

         (1) can a UNION query be parallezied? if yes, how? if no, why?
(2) can I just parallelize the two sub queries?


我使用的是 Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production

谢谢!

最佳答案

我认为您混淆了同时运行两个查询与并行运行查询。 SQL 是一种描述性语言,由 SQL 引擎/优化器翻译成代码。此查询计划由许多不同的组件组成,用于从表中检索数据、执行连接、执行聚合等。

Oracle 为您的联合查询生成查询计划。查询计划的每个组件都可以使用所有可用的处理器(假设满足正确的条件)。但是,每个组件基本上一次运行一个(合理近似)。因此,查询的组件是并行化的,尽管两个子查询不会同时运行。

一个忠告。每当您考虑使用 UNION ,你应该问问自己是否是 UNION ALL也会工作。 UNION ALL效率更高,因为它不必删除最终结果集上的重复项。

关于sql - 并行化 oracle 联合查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com