admin 發表於 2020-3-14 01:37:05

oracle執行一條寫入的SQL語句時在RDBMS中都發生了什麼

執行一條寫入的SQL語句時在RDBMS中都發生了什麼
1. 將SQL語句載入入資料庫緩衝區
2. 將SQL語句要操作的資料檔案副本載入入資料庫緩衝區
3. 執行SQL語句,修改資料檔案副本,形成“髒緩衝區”
4. CKPT檢測到“髒緩衝區”,呼叫DBWn
5. 在DBWn執行之前,先運行了LGWR,將資料檔案的原始狀態和資料庫的改變記錄到Redo Log Files
6. 執行DBWn,將“髒緩衝區的內容寫入到資料檔案”
7. 同時CKPT修改控制檔案和資料檔案頭
8. SMON回收不必要的空閒資源






[*]User訪問Oracle Server之前提交一個請求(包含了db_name、instance_name、username、password等資訊),Oracle Server接收到請求並通過Password File的驗證後,分配SGA記憶體池,啟動後臺程序同時建立並啟動例項。
[*]在啟動例項之後User Process與Server Process建立Connect。
[*]再通過Server process和Oracle Instance完成建立Sesscion。
[*]使用者執行SQL語句,由server process接收到並直接與Oracle互動。
[*]SQL語句通過Server Process到達Oracle Instance,再將SQL載入資料庫緩衝區。
[*]Server Process通知Oracle Database將與SQL語句相關的資料塊副本載入到緩衝區中。
[*]在資料庫快取區執行SQL語句,併產生”髒緩衝區”。
[*]由CKPT檢查點程序檢查到”髒緩衝區”,並呼叫DBWn資料庫寫程序,
但在DBWn執行之前,應該由LGWR先將資料檔案的原始狀態、資料庫的改變等資訊記錄到Redo Log Files。
[*]將更新的內容寫入到磁碟中的資料檔案。
[*]返回結果給使用者







頁: [1]
查看完整版本: oracle執行一條寫入的SQL語句時在RDBMS中都發生了什麼