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新的理解呀。

浅析Android View(一)

Android中的View是Android开发中一个非常重要的知识点,系统提供的基础控件TextView,Button,ListView,ViewGroup等都是基于View。但是很多时候的UI效果,...
  • soul_code
  • soul_code
  • 2016年01月07日 16:37
  • 4127

《新理解矩阵1》:矩阵是什么?

原文链接:http://spaces.ac.cn/index.php/archives/1765/         前边我承诺过会写一些关于自己对矩阵的理解。其实孟岩在《理解矩阵》这...
  • deepdsp
  • deepdsp
  • 2014年01月20日 16:06
  • 2785

深入理解C++11:C++11新特性解析与应用

2.11模板函数的默认模板参数1、C++98中仅模板类支持默认参数,模板函数不支持默认参数,但C++11中模板类和模板函数均支持默认参数 2、模板类的默认参数,对C++98和C++11中,需遵循“从...
  • yagerfgcs
  • yagerfgcs
  • 2017年03月22日 13:57
  • 677

对数据库视图view的理解

首先解释什么是视图: 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表,与真实表不同,视图...
  • u014236541
  • u014236541
  • 2015年11月02日 11:01
  • 7071

对软件的认识

1.软件的定义 我们都知道软件作为信息化的核心,在个人学习、生活、娱乐,社会管理,国家经济军事的发展中都起到了至关重要的推动作用。他的发展速度及带来的巨变都令人惊呼。那么这种高投入、高产出、低能耗、...
  • sunshinehss
  • sunshinehss
  • 2015年09月18日 20:06
  • 476

深入了解View的绘制流程

1.  ViewRoot     ViewRoot是连接WindowManager与DecorView的纽带,View的整个绘制流程的三大步(measure、layout、draw)都是通过ViewR...
  • zzz0001
  • zzz0001
  • 2016年03月20日 17:05
  • 223

理清Activity、View及Window之间关系

View、Window以及Activity主要是用于显示并与用户交互的。这让我们在初学的时候很容易弄混,而且无法理解他们区别以及联系。本文是笔者查阅相关资料后,结合自己的理解写出来。希望能帮你梳理清楚...
  • huachao1001
  • huachao1001
  • 2016年07月26日 11:33
  • 8292

Android View事件分发、拦截、消费机制

日常开发中,我们经常会给各种控件设置点击、触摸事件。如果滑动有冲突,还得去解决滑动冲突,所以对View的事件分发(dispatchTouchEvent)、消费(onTouchEvent)、拦截(onI...
  • SilentWeek
  • SilentWeek
  • 2016年12月27日 17:52
  • 1506

浅涉-----改变view位置的几种方式

为更好说明 代码动态改变view的方式,此处以一个随手指滑动而变化的自定义view的讲解为例 随手指而动,少不了对 onTouchEvent 方法的处理,基本思路为3步: 1.手指摁下的时候,记录...
  • Burn_yourself
  • Burn_yourself
  • 2016年08月10日 18:14
  • 694

在子线程中更新view的问题

在子线程中直接更新一个view,比如设置一个textView的文字 new Thread(new Runnable() { @Override pub...
  • anhenzhufeng
  • anhenzhufeng
  • 2017年03月30日 16:10
  • 661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VIEW新的理解
举报原因:
原因补充:

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