Oracle SQL语句的执行过程详解

数据库 Oracle
以下的文章主要介绍的是Oracle SQL语句的执行过程,以及在其世纪的执行过程中,那些的步骤是值得我们注意的,以下就是文章的具体介绍。

http://database.51cto.com/art/200511/12457.htm在Oracle SQL语句的执行过程中,Oracle数据库的内部分析原理,即 ,当某个用户***次提交关于Oracle SQL表达式的时候,Oracle就会将这SQL语句进行Hard parse,这过程有点像程序编译,检查语法、表名、字段名等相关信息(如下图),这过程会花比较长的时间,因为它要分析语句的语法与语义。

然后获得***化后的执行计划(sql plan),并在内存中分配一定的空间保存该语句与对应的执行计划等信息。

当用户第二次请求或多次请求时,Oracle会自动找到先前的语句与执行计划,而不会进行Hard parse,而是直接进行Soft parse(把语句对应的执行计划调出,然后执行),从而减少数据库的分析时间。

注意的是:Oracle中只能完全相同的语句,包大小写、空格、换行都要求一样时,才会重复使用以前的分析结果与执行计划。
分析过程如下图:

 

Oracle SQL分析过程


对于大量的、频繁访问的Oracle SQL语句,如果不采用Bind 变量的方式,哪Oracle会花费大量的Shared latch与CPU在做Hard parse处理,所以,要尽量提高语句的重用率,减少语句的分析时间,通过了解OracleSQL语句的分析过程可以明白Oracle的内部处理逻辑,并在设计与实现上避免。

在用JDBC或其它持久化数据(如Hibernate,JDO等)操作时,尽量用占位符(?)

【编辑推荐】

  1. Oracle表空间的设置问题的描述
  2. Oracle数据字典的恢复场景
  3. Oracle RAC配置的3步骤以及配置错误的原因
  4. 修改Oracle默认用户密码有效期时间的实操
  5. Oracle 函数用法之decode解剖
责任编辑:佚名 来源: 互联网
相关推荐

2009-11-05 18:07:33

Oracle导出sql

2010-04-13 14:36:17

Oracle性能检测

2010-03-31 15:03:54

Oracle执行

2009-03-09 17:46:16

ASP.NETSQLOracle

2010-09-07 11:41:24

SQL语句

2022-09-01 16:42:47

MySQL数据库架构

2011-05-20 15:59:06

Oracle存储Sql语句

2009-11-18 17:05:47

捕获Oracle SQ

2010-04-16 12:58:48

Oracle sql

2017-05-16 11:20:51

SQL语句解析

2010-02-25 10:04:33

MySQL执行SQL语

2010-09-06 11:24:32

SQL Server语句

2010-11-18 11:08:30

oracle授权语句

2010-09-03 14:47:50

SQLSELECT语句

2010-04-13 15:04:16

Oracle优化

2010-09-25 14:59:54

SQL语句

2010-04-26 16:23:52

Oracle dele

2009-04-09 13:14:09

Oracle分页查询CBO

2010-04-06 15:23:42

Oracle sql

2010-04-12 11:29:23

Oracle SQL
点赞
收藏

51CTO技术栈公众号