2013-02-10 49 views
6

假設通過事務進行更新,然後發出提交語句。在Oracle 10g中發佈提交語句時會發生什麼?

哪些是所有的內部進程都是在Oracle服務器的底層發生的,在一個commit語句之後?

+1

這是一個過於寬泛的問題。歡迎來到SO,但如果它關閉,不要感到失望。你可以嘗試改寫它,澄清它並縮小一點。 – 2013-02-10 08:46:09

回答

5
  1. SCN(系統變更編號)遞增:SCN保證交易秩序
  2. LGWR(日誌寫入)寫入剩餘的重做日誌磁盤
  3. LGWR寫入SCN到聯機重做日誌文件
  4. 交易從V $ TRANSACTION去除
  5. 實際會話的
  6. 鎖被釋放,從V $ LOCK去除
  7. 等待實際的會話的鎖其他會議通知
  8. 塊清理可能發生:鎖相關的信息被清除出由事務
+1

數字7是什麼?我從來沒有聽說過。 – Plouf 2013-02-10 14:41:45

+0

由我們的事務修改的塊將以快速模式從緩衝區緩存中清除。這個清除涉及存儲在塊標題中的鎖定相關信息。我會用這個信息修改答案,thx作爲評論。 – 2013-02-10 17:24:20

+2

幾點要點:SCN必須在交易開始時生成,因爲它用於整合並標記所做的更改。此外,「LGWR(Log Writer)將重做日誌寫入磁盤」可能已經完成。就日誌編寫器而言,唯一必須作爲提交的一部分完成的操作是將事務SCN的提交記錄寫入重做日誌文件。 「Block clean out」也不是強制的 – 2013-02-10 18:03:11

相關問題