設為首頁收藏本站

艾歐踢論壇

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
查看: 1657|回復: 0
打印 上一主題 下一主題

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

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2020-3-14 01:37:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
執行一條寫入的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。
  • 將更新的內容寫入到磁碟中的資料檔案。
  • 返回結果給使用者







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 轉播轉播 分享分享 分享淘帖
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|Archiver|手機版|艾歐踢創新工坊    

GMT+8, 2024-5-16 07:25 , Processed in 0.288624 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表