gpt4 book ai didi

oracle - 为什么此查询会导致 Oracle 中的 MERGE JOIN CARTESIAN?

转载 作者:行者123 更新时间:2023-12-04 15:04:37 26 4
gpt4 key购买 nike

这是我的查询:

select count(*)
from email_prod_junc j
inner join trckd_prod t5 on j.trckd_prod_sk = t5.trckd_prod_sk
inner join prod_brnd b on t5.prod_brnd_sk = b.prod_brnd_sk
inner join email e on j.email_sk = e.email_sk
inner join dm_geography_sales_pos_uniq u on (u.emp_sk = e.emp_sk and u.prod_brnd_sk = b.prod_brnd_sk)

解释计划说:

DM_GEOGRAPHY_SALES_POS_UNIQ 和 EMAIL_PROD_JUNC 之间的笛卡尔连接。

我不明白为什么,因为每个表都有一个连接条件。

最佳答案

我通过添加 ORDERED 提示解决了这个问题:

select /*+ ordered */

我从 here得到信息

如果您按照您希望它们加入的顺序指定表并使用此提示,Oracle 将不会花时间试图找出最佳的连接顺序,它只会按照它们在 FROM 子句中的顺序进行连接。

关于oracle - 为什么此查询会导致 Oracle 中的 MERGE JOIN CARTESIAN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459066/

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