用户与 Oracle DB 交互具体过程

与 Oracle DB 交互
以下的演示样例从最主要的层面描写叙述 Oracle DB 操作。该演示样例说明了一种 Oracle DB 配置,在该配置中,用户和关联server进程执行于通过网络连接的不同计算机上。
1. 在安装了 Oracle DB 的节点(通常称为“主机”或“数据库server”)上启动了一个实例。
2. 用户启动一个应用程序,该应用程序衍生了一个用户进程。该应用程序尝试建立一个与server的连接(此连接可能是本地连接、客户机/server连接或来自中间层的三层连接)。
3. server执行具有对应 Oracle Net Services 处理程序的监听程序。监听程序检測到应用程序发出的连接请求,并创建一个代表用户进程的专用server进程。
4. 用户执行一条 DML 类型的 SQL 语句并提交事务处理。比如,用户更改表中的客户地址并提交更改。
5. server进程接收该语句,并检查共享池(一个 SGA 组件)中是否有包括同样 SQL 语句的共享 SQL 区域。假设找到共享 SQL 区域,server进程将检查用户对于所请求数据的訪问权限,而且使用现有的共享 SQL 区域处理该语句。假设未找到共享 SQL 区域,则为该语句分配一个新的共享 SQL 区域,以便对该语句进行语法分析和处理。

6. server进程从实际数据文件(表)或数据库缓冲区快速缓存中存储的值中检索不论什么必需的数据值。
7. server进程改动 SGA 中的数据。由于提交了事务处理,所以日志写进程 (LGWR) 会马上将该事务处理记录到重做日志文件里。数据库写进程 (DBWn) 会待运行效率高时将改动后的块永久写入磁盘。 
8. 假设事务处理成功,server进程将通过网络向应用程序发送一条消息。假设事务处理不成功,则传送一条错误消息。
9. 在整个过程中,其他后台进程同一时候在执行,用于监视是否有须要干预的情况。此外,数据库server管理其他用户的事务处理,并防止在请求同样数据的事务处理之间发生争用。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值