Oracle SQL的硬解析和软解析】的更多相关文章

Oracle中每条sql在执行前都要解析,解析分为硬解析.软解析.软软解析. Oracle会缓存DML语句,相同的DML语句会进行软解析.但不会缓存DDL语句,所以DDL每次都做硬解析.硬解析是一个很耗时的操作,所以应用程序内部很少执行执行DDL.DDL一般在部署前执行. sql语句执行步骤: 1.语法检查(syntax check) 2.语义检查(symantic check): 对象是否存在,是否有权限. 3.sql解析(parse): 利用内部算法对sql进行解析,生成解析树及执行计划.…
http://blog.chinaunix.net/uid-25909722-id-3363789.html 当客户端进程,将SQL语句通过监听器发送到Oracle时, 会触发一个Server process生成,来对该客户进程服务.Server process得到SQL语句之后,对SQL语句进行Hash运算,然后根据Hash值到library cache中查找,如果存在,则直接将library cache中的缓存的执行计划拿来执行,最后将执行结果返回该客户端,这种SQL解析叫做软解析:如果不存…
今天在项目中探讨到Oracle对于SQL语句的解析方法以及MySQL相应的处理方法: ----------------------------------------------------------------------------------------------------------- 先来看一下Oracle的机制: oralce中有硬解析和软解析的概念,为了能够理解好这两个概念,我们先引入oralce是怎么执行SQL的 oracle在执行SQL的时候有如下步骤: 1 语法检查,例…
提到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程.当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:1.语法检查(syntax check)检查此sql的拼写是否语法.2.语义检查(semantic check)诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限.3.对sql语句进行解析(prase)利用内部算法对sql进行解析,生成解析树(parse tree…
Oracle数据库中的CURSOR分为两种类型:Shared Cursor 和 Session Cursor 1,Shared Cursor Oracle里的第一种类型的Cursor就是Shared Cursor. 它是存在Shared Pool里,Shared Pool 是SGA里的里的一块内存区域,Shared Pool(Library Cache & Data Dict Cache). Library Cache缓存的是刚刚执行过的SQL语句和PL/SQL语句(procedure,func…
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也就是每次执行都需要进行硬解析.还有一类就是DML语句(数据操纵语言),他们会根据情况选择要么进行硬解析,要么进行软解析. DML:INSERT,UPDATE,DELETE,SELECT DDL:CREATE,DROP,ALTER 一.  SQL 解析过程 Oracle对此SQL将进行几个步骤的处理过…
先来张大图: 结合上图来说明一下解析的各个步骤涉及的锁. 软解析.硬解析.软软解析区别的简单说明: 为了将用户写的sql文本转化为oracle认识的且可执行的语句,这个过程就叫做解析过程. 解析分为硬解析和软解析,SQL语句第一次解析时必须进行硬解析 一句话说明硬解析与软解析的区别是: 硬解析=需要生成执行计划   软解析=不需要生成执行计划 在Oracle中存在两种类型的SQL语句,一类为DDL语句,不共享使用,也就是每次执行都需要进行硬解析.还有一类就是DML语句,会进行硬解析或软解析. 硬…
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt329 当客户端进程,将SQL语句通过监听器发送到Oracle时, 会触发一个Server process生成,来对该客户进程服务.Server process得到SQL语句之后,对SQL语句进行Hash运算,然后根据Hash值到library cache中查找,如果存在,则直接将library cache中的缓存的执行计划拿来执行,最后将执行结果返回该客户端,这种SQL解析…
sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号).词法分析程序实现这个任务.词法分析程序可以使用lex等工具自动生成. 2)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 3)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. 4)视图转换,将涉及视图的查询语句转换为相应的…