ORACLE系統概述(4)

jss001發表於2009-03-09
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部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1016779/,如需轉載,請註明出處,否則將追究法律責任。

相關文章