本帖最后由 lghwf 于 2014-10-16 14:48 编辑

又发现另外一条查询计划中 也有MERGE JOIN CARTESIAN,SQL 除了对分区表 实现分区裁剪,其他没发现啥问题,可为啥也执行MERGE JOIN CARTESIAN操作呢,实在不理解,请刘大及各位高手不吝赐教

SQL> set autotrace traceo

SQL>    SELECT

2          B.USER_ID,

B.SERIAL_NUMBER,

B.NET_TYPE_CODE,

A.RELATION_TYPE_CODE

FROM

TF_F_USER_MEMBER A,

TF_F_USER B

WHERE

A.USER_ID = B.USER_ID

AND SYSDATE BETWEEN A.START_DATE AND A.END_DATE

AND A.USER_ID = 1

AND A.RELATION_TYPE_CODE in ('4400','8800')   ;

Execution Plan

----------------------------------------------------------

Plan hash value: 1933860866

----------------------------------------------------------------------------------------------------------------------------

| Id  | Operation                            | Name                | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |

----------------------------------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT                     |                     |     1 |    56 |    23   (0)| 00:00:01 |       |       |

|   1 |  MERGE JOIN CARTESIAN                |                     |     1 |    56 |    23   (0)| 00:00:01 |       |       |

|   2 |   PARTITION RANGE ALL                |                     |     1 |    30 |    12   (0)| 00:00:01 |     1 |    10 |

|*  3 |    TABLE ACCESS BY LOCAL INDEX ROWID | TF_F_USER_MEMBER    |     1 |    30 |    12   (0)| 00:00:01 |     1 |    10 |

|*  4 |     INDEX RANGE SCAN                 | PK_TF_F_USER_MEMBER |     2 |       |    11   (0)| 00:00:01 |     1 |    10 |

|   5 |   BUFFER SORT                        |                     |     1 |    26 |    11   (0)| 00:00:01 |       |       |

|   6 |    PARTITION RANGE ALL               |                     |     1 |    26 |    11   (0)| 00:00:01 |     1 |    10 |

|   7 |     TABLE ACCESS BY LOCAL INDEX ROWID| TF_F_USER           |     1 |    26 |    11   (0)| 00:00:01 |     1 |    10 |

|*  8 |      INDEX RANGE SCAN                | PK_TF_F_USER        |     1 |       |    10   (0)| 00:00:01 |     1 |    10 |

----------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

3 - filter(("A"."RELATION_TYPE_CODE"='4400' OR "A"."RELATION_TYPE_CODE"='8800') AND "A"."END_DATE">=SYSDATE@!)

4 - access("A"."USER_ID"=1 AND "A"."START_DATE"<=SYSDATE@!)

filter("A"."START_DATE"<=SYSDATE@!)

8 - access("B"."USER_ID"=1)

Statistics

----------------------------------------------------------

0  recursive calls

0  db block gets

20  consistent gets

0  physical reads

0  redo size

565  bytes sent via SQL*Net to client

509  bytes received via SQL*Net from client

1  SQL*Net roundtrips to/from client

0  sorts (memory)

0  sorts (disk)

0  rows processed

oracle检查表的级联关系,有条件的两个表关联查询为什么会出现 MERGE JOIN CARTESIAN操作...相关推荐

  1. java mongodb 多表关联查询,多条件查询,分页,排序

    前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...

  2. oracle多表关联查询报表,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...

  3. 多表关联查询过滤条件写在on与where后的区别

    点击上方"蓝字" 关注我们,享更多干货! SQL优化过程中,发现开发人员在写多表关联查询的时候,对于谓词过滤条件的写法很随意,写在on后面与where后面的情况均有,这可能会导致没 ...

  4. oracle创建俩表并关联,Oracle多表关联查询

    select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno; 在上述sql语句中先执 ...

  5. MySQL数据库基础(多表关联查询、内外全连接、复合条件查询、子查询)

    文章目录 一.笛卡尔积查询 二.内.外.全连接查询 三.复合条件查询 四.子查询 五.EXIST判断 本篇文章主要介绍MySQL里的多表关联查询,其中包括了笛卡尔积查询.内连接查询.外连接查询.全连接 ...

  6. ORACLE数据库多表关联查询效率问题解决方案

    ORACLE数据库多表关联查询效率问题解决方案 参考文章: (1)ORACLE数据库多表关联查询效率问题解决方案 (2)https://www.cnblogs.com/baib/p/5086777.h ...

  7. Oracle - 查询语句 - 多表关联查询

    /* SQL语句的历史版本SQL89比较多 SQL92SQL99多表关联查询笛卡尔积等值关联查询非等值关联查询左外连接右外连接全外连接自连接 */ -------------------------- ...

  8. MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表

    MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表 有两张表,info1, info2 . info1: info2: 方式一:要用info2中的 ...

  9. 多表关联查询(Oracle)

    有时一个查询结果需要从两个或两个以上表中提取字段数据,此时需要使用多表关联查询. 1)笛卡尔积关联 create table a(    id number(7),    name varchar2( ...

  10. 多对多关系的多表关联查询

    1.什么是多对多关系 多对多关系(百度):多对多关系是关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关.第二个表中的一个行也可以与第一个表中的一个或多个 ...

最新文章

  1. Django入门之开发环境搭建1.1
  2. Centos7 安装 nginx 服务器的两种方式
  3. Jmeter服务器监控插件使用
  4. uboot移植9个步骤_不知道具体的新房装修步骤?9个步骤教你吃透装修
  5. git rollback代码都没了_git回滚线上代码
  6. 基于WF4的新平台-流程模式-(6)动态串行
  7. ftk学习记(对话框篇)
  8. 决定论的科学家认为,自我是大脑的随附现象,自由意志是一种幻觉
  9. delphi 2007 精简版
  10. 安防布线的一些常见问题。
  11. 红色墙绘设计公司营销网站织梦模板
  12. Dnw下载工具还是Linux下的好(For OK6410)
  13. excel数据转换成对应公式
  14. 表白神器!教你如何使用 Python 绘制爱心墙获取芳心!
  15. 美国标准的网络安全体系架构
  16. 一位25岁的董事长给大学生的18条忠告
  17. (转)Apache对文件后缀解析的分析利用
  18. Android 阿里云推送,针对安卓8.0、9.0以上系统收不到推送 的补丁文档
  19. java 随机生成名字
  20. hdu4348 为 心灵之旅To The Moon 出的 时光穿梭 题。主席树

热门文章

  1. 【雕爷学编程】Arduino动手做(43)---单路继电器模块
  2. 真烂!史上最烂项目:骗了几百万欧元,苦撑 12 年,600万行代码
  3. 工作中提升效率的工具
  4. 电商项目之环信在线客服接入
  5. Linux python + selenium 以 kiosk模式打开Chrome浏览器 并 支持下载文件时询问下载路径
  6. VMware 虚拟机三种网络模式详解
  7. intuitionistic fuzzy set 运算规则python实现
  8. Android5.0,IDA远程调试 The debugger could not attach to the selected process. irs_recv 等待的操作过时
  9. 拍频和混频 PD拍频
  10. es - elasticsearch - search - DSL - specialized - pinned