老师布置了一个大作业问题是,当DBMS接受到一条sql查询语句时,其内部进行了哪些处理,直到最终返回结果?没有一点思路。我没有搞清楚DBMS是如何执行sql的
解决方案 »
- 请大家帮我分析一道选择题(在线等)
- oracle存储过程isnull标识符无效,怎么修改为正确的。
- 一个简单的SQL查询语句,但是……请各位大虾帮帮俺,谢谢。
- SQL中如何判断是否有字母?
- 见笑了!!请问explain plan 怎么使用??
- 求教oracle的时间问题
- oracle9i中如何使用DBA工具进行数据库备份和数据导入和导出
- 关于DELPHI连接ORACLE 9i UP有分
- 请各位好手帮忙!是oracle的bug,还是我的存储过程用法错误??!!
- oracle计算日期差问题,求高人指点,
- oracle11g安装都需要什么安装包
- 在linux操作系统中装oracle11gxe数据库,默认建立的oracle用户的密码是什么?
Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器),当service process接收到用户进程提交的sql语句时,服务器进程会对sql语句进行语法和词法分析。
名词解释:
语法分析:语句本身正确性。
词法分析:对照数据字典中检查表,索引,视图和用户权限。
检查通过后,服务器进程会将sql语句转变为ascii码,并通过一个hash函数将ascii码生成出一个hash值,服务器进程会到share pool中查询此hash是否存在,如果存在,服务器进程会从sharepool中读取已经解析好的语句来执行;如果不存在,则需要做以下步骤:生成执行计划和生成执行编码(请理解何为执行计划)。解析完成后,Oracle会将sql语句本身代码、hash值、编译代码、执行计划和所有与该语句相关的统计数据存放到sharepool中。