PL/SQL笛卡尔连接

PL/SQL笛卡尔连接,sql,oracle,plsql,Sql,Oracle,Plsql,我是PL/SQL新手,使用的是10.0.6.1796版 您能告诉我是否有方法检查我的查询是否有笛卡尔连接吗 启用警告时是否可以显示此信息 我很感激你能给我的任何帮助 您可以查看解释计划: SQL> select * from tab1 a, tab1 b; no rows selected Execution Plan ---------------------------------------------------------- Plan hash value: 2439298

我是PL/SQL新手,使用的是10.0.6.1796版 您能告诉我是否有方法检查我的查询是否有笛卡尔连接吗

启用警告时是否可以显示此信息


我很感激你能给我的任何帮助

您可以查看解释计划:

SQL> select * from tab1 a, tab1 b;

no rows selected


Execution Plan
----------------------------------------------------------
Plan hash value: 2439298300

------------------------------------------------------------------------------------
| Id  | Operation            | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |             |     1 |    26 |     0   (0)| 00:00:01 |
|   1 |  MERGE JOIN CARTESIAN|             |     1 |    26 |     0   (0)| 00:00:01 |
|   2 |   INDEX FULL SCAN    | SYS_C008913 |     1 |    13 |     0   (0)| 00:00:01 |
|   3 |   BUFFER SORT        |             |     1 |    13 |     0   (0)| 00:00:01 |
|   4 |    INDEX FULL SCAN   | SYS_C008913 |     1 |    13 |     0   (0)| 00:00:01 |
------------------------------------------------------------------------------------

向我们展示您的存储过程。此外,没有“PL/SQL”的10.0.6.1796版本。而且从来没有发布过Oracle 10.0版本。只有Oracle 10.1和Oracle 10.2如果使用显式
join
语法,而不是在
from
子句中使用逗号分隔表的旧隐式语法,您会发现意外生成笛卡尔积要困难得多。还有,第10版是什么;这是指PL/SQL开发人员客户端吗?该标记用于Oracle PL/SQL编程语言。如果您的问题是关于第三方IDE的,那么请使用标记。如果您使用的是PL/SQL Developer,您可以选择您感兴趣的查询(只需单击查询文本中的某个位置即可),然后点击F5,这将在查询上显示一个解释计划窗口。然后寻找一条归并笛卡尔线,正如@Aleksej在他的答案中所建议的那样。祝你好运。