易截截图软件、单文件、免安装、纯绿色、仅160KB

通过分析SQL语句的执行计划优化SQL(六)


执行计划的步骤
执行计划的每一步返回一组行,它们或者为下一步所使用,或者在最后一步时返回给发出SQL语句的用户或应用。由每一步返回的一组行叫做行源(row source)。图5-1树状图显示了从一步到另一步行数据的流动情况。每步的编号反映了在你观察执行计划时所示步骤的顺序(如何观察执行计划将被简短地说明)。一般来说这并不是每一步被执行的先后顺序。执行计划的每一步或者从数据库中检索行,或者接收来自一个或多个行源的行数据作为输入:
由红色字框指出的步骤从数据库中的数据文件中物理检索数据。这种步骤被称之为存取路径,后面会详细介绍在Oracle可以使用的存取路径:
第3步和第6步分别的从EMP表和SALGRADE表读所有的行。
第5步在PK_DEPTNO索引中查找由步骤3返回的每个DEPTNO值。它找出与DEPT表中相关联的那些行的ROWID。
第4步从DEPT表中检索出ROWID为第5步返回的那些行。
由黑色字框指出的步骤在行源上操作,如做2表之间的关联,排序,或过滤等操作,后面也会给出详细的介绍:
第2步实现嵌套的循环操作(相当于C语句中的嵌套循环),接收从第3步和第4步来的行源,把来自第3步源的每一行与它第4步中相应的行连接在一起,返回结果行到第1步。
第1步完成一个过滤器操作。它接收来自第2步和第6步的行源,消除掉第2步中来的,在第6步有相应行的那些行,并将来自第2步的剩下的行返回给发出语句的用户或应用。
实现执行计划步骤的顺序
执行计划中的步骤不是按照它们编号的顺序来实现的:Oracle首先实现图5-1树结构图形里作为叶子出现的那些步骤(例如步骤3、5、6)。由每一步返回的行称为它下一步骤的行源。然后Oracle实现父步骤。
举例来说,为了执行图5-1中的语句,Oracle以下列顺序实现这些步骤:
首先,Oracle实现步骤3,并一行一行地将结果行返回给第2步。
对第3步返回的每一行,Oracle实现这些步骤:
-- Oracle实现步骤5,并将结果ROWID返回给第4步。
-- Oracle实现步骤4,并将结果行返回给第2步。
-- Oracle实现步骤2,将接受来自第3步的一行和来自第4步的一行,并返回
给第1步一行。
-- Oracle实现步骤6,如果有结果行的话,将它返回给第1步。
-- Oracle实现步骤1,如果从步骤6返回行,Oracle将来自第2步的行返回给
发出SQL语句的用户。
注意Oracle对由第3步返回的每一行实现步骤5,4,2,6一次。许多父步骤在它们能执行之前只需要来自它们子步骤的单一


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

用ASP.NET/C#连接Access和SQL Server数据库

连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwind.mdb" ......

oracle数据库中sql基础 深未来

oracle数据库中sql基础
作者:佚名    转贴自:本站原创    浏览次数:21    文章录入:admin
一、关系数据库的一些概念
  
  1、主键的值一般不可以改变
  
  2、外键:指向另一个表或本表的主键或唯一键的字段。外键的值一定要和某一主键相同 ......

通过分析SQL语句的执行计划优化SQL(四)

五: ORACLE的执行计划
背景知识:为了更好的进行下面的内容我们必须了解一些概念性的术语:
 
共享sql语句
 
为了不重复解析相同的SQL语句(因为解析操作比较费资源,会导致性能下降),在第一次解析之后,ORACLE将SQL语句及解析后得到的执行计划存放在内存中。这块位于系统全局区域SGA(system global are ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号