下载此文档

sql执行流程.docx


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
SQL 语句的执行过程(SQL Statement Execution)
图中概要的列出了处理和运行一个sql语句的需要各个重要阶段。在某些状况下,Oracle运行sql的过程可能与下面列出的各个阶段的依次有所不同。如DEFINE阶段可地返回成功或失败,而查询则能返回一行或许多行数据。查询的结果均接受表格形式,结果行被一次一行或者批量地被检索出来。从这里我们可以得知批量的fetch数据可以降低网络开销,所以批量的fetch也是优化的技巧之一。
有些问题只与查询处理相关,查询不仅仅指SELECT语句,同样也包括在其它SQL语句中的隐含查询。例如,下面的每个语句都需要把查询作为它执行的一部分:
INSERT INTO table SELECT...
UPDATE table SET x = y WHERE...
DELETE FROM table WHERE...
CREATE table AS SELECT...
具体来说,查询
• 要求读一样性
• 可能运用回滚段作中间处理
• 可能要求SQL语句处理描绘、定义和取数据阶段
第3步: 描绘查询结果(Describe Results of a Query)
描绘阶段只有在查询结果的各个列是未知时才需要;例如,当查询由用户交互地输入需要输出的列名。在这种状况要用描绘阶段来确定查询结果的特征(数据类型,长度和名字)。
第4步: 定义查询的输出数据(Define Output of a Query)
在查询的定义阶段,你指定与查询出的列值对应的接收变量的位置、大小和数据类型,这样我们通过接收变量就可以得到查询结果。假设必要的话,Oracle会自动实现数据类型的转换。这是将接收变量的类型与对应的列类型相比较确定的。
第5步: 绑定变量(Bind Any Variables)
此时,Oracle知道了SQL语句的意思,但仍没有足够的信息用于执行该语句。Oracle 需要得到在语句中列出的全部变量的值。在该例中,Oracle需要得到对department_id列进展限定的值。得到这个值的过程就叫绑定变量
(binding variables)
此过程称之为将变量值捆绑进来。程序必需指出可以找到该数值的变量名(该变量被称为捆绑变量,变量名本质上是一个内存地址,相当于指针)。应用的最终用户可能并没有觉察他们正在指定捆绑变量,因为Oracle 的程序可能只是简洁地指示他们输入新的值,其实这一切都在程序中自动做了。
因为你指定了变量名,在你再次执行之前无须重新捆绑变量。你可以变更绑定变量的值,而Oracle在每次执行时,仅仅运用内存地址来查找此值。
假设Oracle 需要实现自动数据类型转换的话(除非它们是隐含的或缺省的),你还必需对每个值指定数据类型和长度。关于这些信息可以参考oracle的相关文档,如Oracle Call Interface Programmer's Guide
第6步: 并行执行语句(Parallelize the Statement )
ORACLE 可以在SELECTs, INSERTs, UPDATEs, MERGEs, DELETEs语句中执行相应并行查询操作,对于某些DDL操作,如创立索引、用子查询创立表

sql执行流程 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2623466021
  • 文件大小15 KB
  • 时间2022-04-25