为什么此查询会在 Oracle 中产生 MERGE JOIN CARTESIAN?

2024-02-23

这是我的查询:

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 http://www.dba-oracle.com/art_builder_sql_execution.htm

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么此查询会在 Oracle 中产生 MERGE JOIN CARTESIAN? 的相关文章

随机推荐

  • 在 OpenCV 中更新 Mat 的子矩阵

    我正在使用 OpenCV 和 C 我有一个像这样的矩阵 X Mat X Mat zeros 13 6 CV 32FC1 我只想更新它的一个 4x3 子矩阵 但我对如何有效地访问该矩阵存有疑问 Mat mat43 Mat eye 4 3 CV
  • 恢复备份mysql

    我在 mysql 中有一个 250MB 的数据库备份 如何将其恢复到另一台服务器上的新数据库中 或者只是使用php我的管理员为了恢复海豚
  • 分组数据框中日期范围重叠

    我如何知道两行的日期范围是否重叠 输入数据框 A B Start End Timestamp A1 B1 2022 01 15 2022 02 15 2021 05 17 A1 B1 2021 07 15 2021 10 17 2021 0
  • 在 Excel 中设置文本字符串列表的格式

    我正在尝试将 Excel 中出现的单词列表的字体变成红色 到目前为止 我能够找到一个单词 但我需要搜索整个数组 我是 VBA 新手 正在苦苦挣扎 到目前为止 我已经找到了一个解决方案 但它涉及查找单个字符串 F1 Sub test4Stri
  • 获取隐藏元素的偏移量

    如何获取隐藏元素的坐标 offset 不支持使用隐藏元素 有什么提示吗 如果你的元素有 hide 调用它 或者如果它有display none在CSS中 浏览器根本不费心去渲染它 在这种情况下 答案不是直接的 在最近的jQueries中 你
  • 在 Parse.com Cloud 代码 beforeSave 函数中访问原始字段

    最终目标是使用以下方法检测现有 Parse 对象和传入更新之间的更改beforeSave云代码中的函数 从 parse com 提供的 Cloud Code 日志中 我们可以看到以下内容的输入 beforeSave包含一个名为origina
  • cudart_static - 什么时候有必要?

    由于较新的驱动程序附带 CUDA 运行时 我可以在驱动程序下载页面中选择 9 1 或 9 2 我的问题是 我的库 内部使用 CUDA 内核 是否应该附带 lcudart static 我在使用 9 1 CUDA 驱动程序的系统上启动使用 9
  • 如何更改 catalina.out 的路径?

    我无法找到移动的设置catalina out记录到 var log jira 我成功设置了以下文件的路径access log log catalina log host manager log localhost log and manag
  • Python中是否可以动态生成命令Click

    我正在尝试生成click来自配置文件的命令 本质上 这个模式 import click click group def main pass commands foo bar baz for c in commands def f print
  • 使用正确的权限在 ASP.NET/C# 中启动服务

    在我的网站 用 ASP NET C 编写 上 我希望管理员能够启动某个服务 我为此的代码是 ServiceController svcController new ServiceController InvidualFileConversi
  • 什么时候可以不正常化? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何更改 c3 饼图中图例的文本

    如何更改饼图图例的文本 我在我的 php 页面中使用 c3 图表 我已经阅读了 c3 图表的文档 但没有运气 目前我正在使用这段代码 它显示图例true但我无法更改我尝试过的文本 var chart c3 generate bindto c
  • 了解域对象+数据映射器模式?

    我过去一直使用各种 ORM 并将所有逻辑放在模型中 无论其性质如何 SQL MongoDB 查询 甚至获取远程 JSON 对象 但是 当需要确保松散耦合以实现高水平的可测试性时 这种方法的问题很快就会出现 今天我读到了有关将模型分为两部分的
  • 为什么 css .hover div 会“闪烁”?

    我的网站上有一些 选项卡 包含文本 当鼠标悬停时 选项卡会展开并显示更多文本 出于我们的意图和目的 选项卡是某种菜单 但问题是 当鼠标悬停在上面时 选项卡会正确展开 因为悬停应该使它这样做 但然后很快 闪 回其原始大小 然后立即恢复到其悬停
  • TortoiseGit 到 Gitlab 存储库 HTTP 基本访问被拒绝

    自从 TortoiseGit 从 2 6 0 0 更新到 2 7 0 0 后 我无法再通过使用 TortoiseGit 访问我的 GitLab 我设法在 2 6 上获取 拉取和推送 但截至今天 在 2 7 上这不起作用 我有两台设置完全相同
  • 在 C# 事件处理程序中,为什么“sender”参数必须是对象?

    根据Microsoft 事件命名指南 https msdn microsoft com en us library h0eyck3s 28VS 71 29 aspx the senderC 事件处理程序中的参数 是always类型对象 即使
  • Wayland 上的屏幕截图显示为黑色

    我找到了这个code http ted mielczarek org code screenshot 在 Ted Mielczarek 网站上截取屏幕截图 gdk screenshot cpp Save a screenshot of th
  • 假“点击”来激活 onclick 方法

    我有一个元素onclick method 我想在另一个函数中激活该方法 或者 假装单击该元素 这可能吗 选择元素后 您可以调用 click document getElementById link click see https devel
  • apache 如何知道 SAML 响应已通过身份验证

    我是 Apache 和 SAML 的新手 我的 my app httpd conf 文件中有以下配置 它将未经身份验证的请求重定向到正常工作的 OKTA
  • 为什么此查询会在 Oracle 中产生 MERGE JOIN CARTESIAN?

    这是我的查询 select count from email prod junc j inner join trckd prod t5 on j trckd prod sk t5 trckd prod sk inner join prod