VIEW新的理解

原创 2012年03月28日 11:22:58

create table test1 as select * from dba_objects where object_id <40
test1有38笔数据
create table test2 as select * from dba_objects
create table test3 as select * from dba_objects
create table test4 as select * from dba_objects where object_id <10
test4只有8笔数据
create index idx_test2 on test2 (object_id)
create index idx_test3 on test3 (object_id)


create  view v_view as
select test1.* from test1,test2,test3 where test1.object_id = test2.object_id  and test2.object_id = test3.object_id;


Plan hash value: 372490522

---------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
---------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT         |           |      1 |        |     27 |00:00:00.55 |    2125 |       |       |          |
|   1 |  NESTED LOOPS            |           |      1 |     12 |     27 |00:00:00.55 |    2125 |       |       |          |
|   2 |   TABLE ACCESS FULL      | TEST4     |      1 |      8 |      8 |00:00:00.01 |       4 |       |       |          |
|*  3 |   VIEW                   | V_VIEW    |      8 |      1 |     27 |00:00:00.55 |    2121 |       |       |          |
|*  4 |    HASH JOIN             |           |      8 |     38 |    304 |00:00:00.55 |    2121 |   776K|   776K| 1194K (0)|
|*  5 |     HASH JOIN            |           |      8 |     38 |    304 |00:00:00.27 |    1072 |   780K|   780K| 1189K (0)|
|   6 |      TABLE ACCESS FULL   | TEST1     |      8 |     38 |    304 |00:00:00.01 |      24 |       |       |          |
|   7 |      INDEX FAST FULL SCAN| IDX_TEST2 |      8 |  56100 |    448K|00:00:00.01 |    1048 |       |       |          |
|   8 |     INDEX FAST FULL SCAN | IDX_TEST3 |      8 |  56101 |    448K|00:00:00.01 |    1049 |       |       |          |
---------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - filter("TEST4"."DATA_OBJECT_ID"="V_VIEW"."DATA_OBJECT_ID")
   4 - access("TEST2"."OBJECT_ID"="TEST3"."OBJECT_ID")
   5 - access("TEST1"."OBJECT_ID"="TEST2"."OBJECT_ID")

TEST4里有8行,每行都循环一次做* 3 的FILTER, 被推入到TEST1的谓词上,所以步骤6的STARTS是8,因为重复了8次,所以A-Rows是 8*38=304

这个真的是view新的理解呀。

相关文章推荐

彻底理解尼康新版View NX2

  • 2013年03月12日 20:33
  • 8MB
  • 下载

自定义View构造函数参数理解

自定义的属性使用1、通过为自定义View添加属性 2、在xml中为相应的属性值 3、在运行时(一般为构造函数)获取属性值 4、将获取到得属性值应用到View自定义Style ...

深入理解android view 生命周期

作为自定义 view 的基础,如果不了解android  view 的生命周期 , 那么你将会在后期的维护中发现这样那样的问题 ....... 做过一段时间android 开发的同学都知道,一般 o...

理解view和page结构

一.view相关: view在页面中可以有自己的设置、页面切换和历史,每一个view都可以有自己的导航栏,工具栏和不同的样式。就像是一个应用中的另一个应用。Views () - 是所有可见View的...

自定义View的理解体会

1、概述 自定义View过程可以分为三个大的部分:java代码部分,继承自某一个特定的View类,并重写其中的方法,这是必不可少的部分;自定义属性文件部分,可选;在布局xml文件中声明自定义的View...

Yii之从User-Group-Role例子理解Model-View-Controller



Android快速理解Activity、View及Window&WindowManager之间关系

基本概念描述: 1.Activity用户最直接接触到的,Activity维护应用程序的生命周期,它依赖于Window 2.Window表示一个窗口的概念,类似360悬浮窗的东西就需要Window来实现...

View的绘制流程和底层代码的理解和实现过程

View的绘制流程和底层代码的理解和实现过程 文章目录 View对象的绘制分为3个步骤 onMeasure()和onLayout()的作用 测量View的三种模式 父类View中对应这个三个方法底层实...

自定义View 之 onMeasure的理解

自定义View一般需要重写onDraw()方法进行界面的绘制 如画一个矩形: @Override protected void onDraw(Canvas canvas) {     super.o...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VIEW新的理解
举报原因:
原因补充:

(最多只允许输入30个字)