SQL语句主要分为如下4个阶段。
1.Parse(解析)阶段
在该阶段,Oracle将首先在Share Pool中搜索该语句,即判断该语句是否已经被分析和执行过,如果没有发现该语句,则需要检查该语句的语法、检查该语句的主义及访问权限、对视力定义和子查询进行转换操作,并最终确定该语句优化的执行计划,这个完整的分析过程叫硬解析(Hard Parse)。如果在Share Pool中发现了该语句,说明该语句已经被分析和执行过,则只需要检查该语句的语义及访问权限,而其他大部分工作则无需再进行了。这个过程叫软解析(Soft Parse)。可见硬解析比软解析的资源消耗大多了。
2.Bind(绑定)阶段
在该阶段,当SQL语句含有变量(Bind变量)时,Oracle通过赋值或传参等方式为这些Bind变量赋值。
3.Execute(执行)阶段
在该阶段,Oracle将实施Parse阶段确定的执行计划,开始执行DML语句,实现I/O及排序操作等。如果是DDL、DML操作,完成此阶段,则执行过程结束。
4.Fetch(获取)阶段
在该阶段只适合于Select操作,即进行查询记录的读取并对查询结果进行排序。为提高性能,Oracle建议以数组方式成批提取记录,降低服务器和客户端的网络传输次数(Round-trip)。
分享到:
相关推荐
SQL常用语句用法浅析.pdf
SQL语句的性能优化浅析.pdf
浅析PowerBuilder下动态SQL语句.pdf
浅析索引在SQL语句中的使用技巧.pdf
浅析数据库系统中SQL语句的优化技术.pdf
浅析SQL查询语句的优化策略.pdf
DB2之SQL优化浅析,详细介绍了DB2的一些SQL语句的优化。
浅析派生表在SQL查询语句中的应用.pdf
...
...
针对部分常用的SQL语句,描述了Oracle和SQL Server在语法结构上的区别。
当我们写的SQL语句传到SQL Server的时候,查询分析器会将语句依次进行解析(Parse)、绑定(Bind)、查询优化(Optimization,有时候也被称为简化)、执行(Execution)。除去执行步骤外,前三个步骤之后就生成了...
/*创建数据库*/ CREATE DATABASE tmp go USE tmp go /*创建数据库测试表*/ CREATE TABLE [Scores] ( [ID] INT IDENTITY(1, 1) PRIMARY KEY , [Student] VARCHAR(20) , [Subject] VARCHAR(30) , [Score] ...
在上篇文章给大家介绍了SQL Server中的执行计划缓存(上),本文继续给大家介绍sqlserver执行计划缓存相关知识,小伙伴们一起学习吧。 简介 在上篇文章中我们谈到了查询优化器和执行计划缓存的关系,以及其二者之间...
SQL事务浅析,在群里有人问过相关的问题,是由于一些语句没有考虑到,此文档帮助过很多人解决问题、
说来惭愧,工作差不多4年了,直到前些日子被DBA找上门让我优化一个CPU占用很高的复杂SQL语句时,我才突然意识到了参数化查询的重要性。 相信有很多开发者和我一样对于参数化查询认识比较模糊,没有引起足够的重视...
SQL语句行列转换的两种方法 case...when和pivot函数应用,运用pivot 函数只支持数据库版本2005以上的。一般运用case when else end 的方法比较多,比较普遍
修改SQL语句,将进行全文查询语句的内容加入查询条件中 文件的存储方式: 为了方便存储以及方便索引,我们将上传的文件存储到一个目录里面,为了保证上传的文件名不重复,采用GUID作为文件名,并且通过这个GUID于...
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示 A B 1 abc ...