ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 学习Oracle起因& How Oracle Works

学习Oracle起因& How Oracle Works

原创 Linux操作系统 作者:JackolWu 时间:2010-03-12 16:02:54 0 删除 编辑

   我之前一直做JAVA开发,平时对Oracle的接触就是基于Oracle的开发,
也就是建建表,写写SQL和存储过程之类的,对Oracle的体系结构也
不是很清楚,于是便想了解下相关方面的知识,近期在网上看了一些
Oracle入门学习之类的文章,多次提到了Oracle Concepts文档,
便上网下了个中英文的文档来看(自己的英文水平确实不咋地,慢慢
加强吧,呵呵),今天看了第一章,看了很多概念性的东西,整的我现在
还有点晕乎乎的,希望在看以后的章节时这些概念可以一一理解吧,
呵呵。下面将今天看到的"How Oracle Works"这段中文版摘录如下
(想看原版的可以直接查看Concepts文档):
   以下例子大体上描述了Oracle进行更新(update)时操作的主要步
骤。在例子所描绘的Oracle配置中,用户和相关的服务进程处在不
同的计算机中,通过网络连接。
1.在运行Oracle的计算机上启动一个实例(这台计算机也被称为主机(host)
或数据库服务器(database server))。

2.运行应用程序的计算机(也被称为本地计算机(local computer)
或客户端工作站(client workstation))中启动了用户进程(user process)。
客户端应用程使用与所在网络环境相匹配的Oracle网络服务驱动与服务器建立连接。

3.数据库服务器也运行与网络环境相匹配的Oracle网络服务驱动。当服务器监
听到应用程序的请求后,就建立专用服务器进程为对应的用户进程提供服务。

4.用户执行SQL语句、提交事务(transaction)。例如,用户改变数据表
内某一行的数据。

5.服务进程收到用户提交的语句后,先在共享池(shared pool)中查找是否存
在与此语句相同的共享SQL区(shared SQL area)。如果存在,服务进程就检
查用户是否有访问所请求数据的权限,满足权限要求的话,就使用已有的享
SQL区来处理SQL语句。如共享SQL区不存在,服务进程要为用户提交的SQL语
句创建新的共享SQL区,用来解析、处理此语句。

6.服务进程从数据文件(逻辑上看就是数据表)或SGA中获得所需的数据。

7.服务进程修改SGA中的数据。由于事务已经提交,LGWR进程立即在重做日志
文件(redo log file)中记录此事务。而DBWn进程则在适当的时机将修改过的
数据块写入磁盘。

8.如事务成功,服务进程通过网络通知应用程序。如不成功,则向应用程序
提交错误信息。

9.在整个过程中,还有一些未提到的后台进程在运行,她们对整个过程进行
监控,在需要时参与进来。此外数据库服务器还要管理其它用户的事务,
防止请求相同数据的事务之间产生竞争(contention)。

看这段时,我想到的就是当我在执行SQL的时候,该SQL是怎么一步一步执行的。 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20666745/viewspace-629370/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: RHEL5安装Oracle10GR2
下一篇: 放松&调整
请登录后发表评论 登录
全部评论

注册时间:2010-03-10

  • 博文量
    19
  • 访问量
    27829