ORACLE运行
1) 使用专用服务进程的ORACLE的运行
在这种配置下,ORACLE运行过程如下:
(1) 数据库服务器计算机当前正在运行ORACLE(后台进程)。
(2) 在一客户工作站运行一个数据库应用(为用户进程),如SQL*PLUS。客户应用使用SQL*NET DRIVER建立对服务器的连接。
(3) 数据库服务器计算机当前正运行合适的SQL*NET DRIVER,该机上接收器进程检出客户数据库应用的连接请求,并在该机上为用户进程建立专用服务器进程。
(4) 用户发出单个SQL语句。
(5) 专用服务器进程接收该语句,在此处有两种方法处理SQL语句:
如果在共享池一共享SQL区中包含有相同SQL语句时,该服务器进程可利用已存在的共享SQL区执行客户的SQL语句。
如果在共享池中没有一个SQL区包含有相同的SQL语句时,在共享池中为该语句分配一新的共享SQL区。
在每一种情况,在会话的PGA中建立一个专用SQL区,专用服务器进程检查用户对查询数据的存取权限。
(6) 如果需要,服务器进程从数据文件中检索数据块,或者可使用已存储在实例SGA中的缓冲存储区的数据块。
(7) 服务器进程执行存储在共享SQL区中的SQL语句。数据首先在SGA中修改,由DBWR进程在最有效时将它写入磁盘。LGWR进程在在线日志文件中记录用户提交请求的事务。
(8)如果请求成功,服务器将通过网络发送一信息。如果请求不成功,将发送相应的错误信息。
(9)在整个过程中,其它的后台进程是运行的,同时注意需要干预的条件。另外,ORACLE管理其它事务,防止不同事务之间请求同一数据的竞争。
2) 使用多线索服务器的ORACLE的运行
在这种配置下,ORACLE运行过程如下:
(1) 一数据库服务器计算机运行使用多线索服务器配置的ORACLE。
(2) 在一客户工作站运行一数据库应用(在一用户进程中)。客户应用合适的SQL*NET驱动器试图建立到数据库服务器计算机的连接。
(3) 数据库服务器计算机当前运行合适的SQL*NET驱动器,它的网络接收器进程检出用户进程的连接请求,并决定用户进程如何连接。如果用户是使用SQL*NET版本2,该网络接收器通知用户进程使用一个可用的调度进程的地址重新连接。
(4) 用户发出单个SQL语句
(5) 调度进程将用户进程的请求放入请求队列,该队列位于SGA中,可为所有调度进程共享。
(6) 一个可用共享服务器检验公用调度进程请求队列,并从队列中检出下一个SQL语句。然后处理该SQL语句,同前一(5),(6)和(7)。注意:会话的专用SQL区是建立在SGA中。
(7) 一当共享服务器进程完成SQL处理,该进程将结果放置发入该请求的调度进程的响应队列。
(8) 调度进程检查它的响应队列,并将完成的请求送回请求的用户进程。[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18921899/viewspace-1016779/
,如需转载,请注明出处,否则将追究法律责任。