PL / SQL Cartesian加入

时间:2016-10-19 14:04:47

标签: sql oracle plsql

我是PL / SQL的新手,我使用的是版本10.0.6.1796 你能否告诉我是否有办法检查我的查询是否有笛卡尔联接?

启用警告时是否可以显示?

我感谢你能给我的任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以查看解释计划:

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 |
------------------------------------------------------------------------------------