|
6
|
| Mark Sherretta · 技术社区 · 15 年前 |
|
1
4
|
|
|
2
2
如果不知道你的索引和完整的计划,很难说为什么会发生这种情况。我最好的猜测是EMAIL\u PROD\u JUNC和DM\u GEOGRAPHY\u SALES\u POS\u UNIQ相对较小,而且TRCKD\u PROD有一个索引(TRCKD\u PROD\u sk,PROD\u brnd\u sk)。如果是这样的话,那么优化器可能已经决定两个较小表上的笛卡尔函数比过滤TRCKD\u PROD两次要便宜。 |
|
|
3
0
我推测这是因为最后一个内部连接的on(x和y)条件。Oracle可能不知道如何优化multi-statement条件,因此它会执行一个完全联接,然后在事后按条件过滤结果。我对甲骨文的解释计划不太熟悉,所以我不能权威地这么说
如果要验证此假设,可以尝试将查询更改为:
看看这是否会消除计划中的完全连接 |
|
|
maddy · 如何根据oracle SQL中的某一列值进行排名 2 年前 |
|
|
kiric8494 · 显示以元音开头和结尾的城市名称 3 年前 |
|
|
Franz Biberkopf · Oracle:组合子查询和聚合函数 3 年前 |
|
|
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 3 年前 |
|
|
Arifullah · 如何从oracle中的列中删除特定的初始字符? 3 年前 |
|
|
Anar · Oracle SQL用户定义函数 3 年前 |
|
|
user1312312 · 如何为一组表编写通用触发器? 3 年前 |