與 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管理其他用戶的事務處理,并防止在請求同樣數據的事務處理之間發生爭用。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
