Oracle 对 sql 的处理过程】的更多相关文章

Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字段名等相关信息(如下图),这过程会花比较长的时间,因为它要分析语句的语法与语义.然后获得最优化后的执行计划(sql plan),并在内存中分配一定的空间保存该语句与对应的执行计划等信息. 2.当用户第二次请求或多次请求时,Oracle会自动找到先前的语句与执行计划,而不会进行Hard parse,而…
当你发出一条 sql 语句交付 Oracle,在执行和获取结果前,Oracle 对此 sql 将进行几个步骤 的处理过程: 1.语法检查(syntax check)   检查此 sql 的拼写是否语法. 2.语义检查(semantic check)   诸如检查 sql 语句中的访问对象是否存在及该用户是否具备相应的权限. 3.对 sql 语句进行解析(prase)   利用内部算法对 sql 进行解析,生成解析树(parse tree)及执行计划(execution plan). 4.执行 s…
1.简介 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分,通过使用输出参数,可以将执行部分的数据传递到应用环境,在sql/plus中通过create procedure来创建过程. 下面通过scott方案(scott方案是oracle数据库自带的一个方案,在实现下面的代码前,请确保该方案可用,也就是scott用户被解锁)来实现一个案例: 1.1.编写一个过程,通过输入用户名和新的年薪,来修改雇员原…
之前没用过oracle,现在公司用到就记录下安装过程吧.安装PL/SQL工具,安装oracle11G工具.打开PL/SQL 进行配置.…
转载至:http://blog.csdn.net/aqszhuaihuai/article/details/7024551 当我们提交一条sql语句时,Oracle会做哪些操作呢? Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器),当service process接收到用户进程提交的sql语句时,服务器进程会对sql语句进行语法和词法分析. 名词解释: 语法分析:语句本身正确性. 词法分析:对照数据字典中检查表,索引,视图和…
select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这种方法查询结果每条记录显示一条查询语句,且仅仅能查询sql_text小于1000字符的,多余的会被截断.         改进一下: select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00' and sql_text like '…
PL/SQL(procedure language/SQL)语言是Oracle对SQL语言的过程化扩充,是一个完整的编程语言.PL/SQL实现了过程化语句(如分支.循环等)与SQL语句的无缝连接,将过程化语言的数据处理能力与SQL语言的访问数据库的能力有机地结合在一起.PL/SQL语言在Oracle系统中是核心的编程语言,它应用于很多方面,如存储过程.触发器.包.函数和Web应用等.PL/SQL语言编写的不是客户端程序,而是服务器端的程序 PL/SQL字符集 合法字符 所有大小写字母 数字0-9…
简单的pl/sql程序 declare begin dbms_output.put_line('hello world'); end; 什么是PL/SQL? pl/sql(Procedure language/SQL) plsql是oracle对sql语言的过程化扩展 指在sql命令语方中增加了过程处理语句(如分支.循环等),使sql语言具有过程处理能力.   PL/SQL程序结构 declare 说明部分(变量说明,光标申明,例外说明) begin 语句序列(DML语句)... excepti…
1.sql解析的过程 oracle首先将SQL文本转化为ASCII字符,然后根据hash函数计算其对应的hash值(hash_value).根据计算出的hash值到library cache中找到对应的bucket,然后比较bucket里是否存在该SQL语句. 如果不存在,获得shared pool latch,然后在shared pool中的可用chunk链表(也就是bucket)上找到一个可用的chunk,然后释放shared pool latch.在获得了chunk以后,这块chunk就可…
pl/sql语言是oracle在sql上扩展的语言.1 过程.函数.触发器是在pl/sql编写2 过程.函数.触发器是在oracle中3 pl/sql的语句可以在java中直接调用 简单介绍 在sql—plus编写一个存储过程,该过程可以向某表中添加记录. 第一步:创建表create table mytest(name varchar2(20), passwd varchar2(20)); 第二步:创建过程create procedure mypro1 is begin--执行部分insert…