<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    漂在爪洼島上

    Java is my life,but not all!
    posts - 3, comments - 6, trackbacks - 0, articles - 9
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Oracle事務知識要點

    Posted on 2009-11-04 13:12 周競先 閱讀(157) 評論(0)  編輯  收藏 所屬分類: Database
    1.事務隔離

    ①一個未提交的事務所做的修改不能被其它事務所看到。只有當事務提交成功后,在該事務之后執行的其它事務才可能看到該事務所做的改變。

    ②在該事務提交之前已經執行了一部分而另一部分在該事務提交后執行的剩余部分同樣也看不到該事務做出的改變。這是另一個Oracle特性:讀一致和快照。

    ③在該事務提交同時進行的其它事務同樣也看不到該事務所做的改變。

    2.語句級回滾

    ①當一個SQL語句在執行期間因為發生的任何錯誤而中斷時,將產生一個“語句級回滾”。該回滾的后果就像這個SQL語句根本沒有執行過一樣。

    ②注意回滾是發生在“執行”階段的,如果是在SQL語句的解析階段因為語法問題而無法執行。因為沒有產生任何影響而不會出現“回滾”。

    3.事務控制的分割

    如果一個事務中包含了DML語句和DDL語句,那么該事務會被分解成多個事務。首先在DDL之前的所有DML語句會被作為一個事務而一次性提交。然后Oracle會為這個DDL創建一個新的,單語句的事務。如果DDL語句執行失敗了,那么DML事務依然成功。

    4.不同情況下的事務控制


    請注意:用戶從Oracle服務器斷開連接和用戶進程強行中斷的后果是不同的。 

    ①前者典型的例子是Oracle服務器關閉或重啟,此時所有未提交事務會被提交。

    ②后者典型的例子用戶通過進程管理器強行kill掉進程,此時所有未提交事務所做的操作被回滾。

    5.事務提交前要做的事情

    Oracle提交一個事務之前,必須做以下幾件事情: 

    ①記住數據被修改前是什么樣子的

    ②記住數據即將要被改成什么樣子

    ③記住redo log和undo log的關聯

    ④將SGA中已讀取到內存的數據修改為新的值(此時并未真正保存到數據文件)

    其中第一步是通過在undo表空間中記錄undo日志來完成的。第二步、第三步是通過向SGA中的redo日志緩沖區寫記錄來完成的。這樣當事務回滾時就可以從redo日志找到對應的undo日志,從而找回之前的數據

    ★要特別注意的是:此時不一定會觸發DBWn進程。

    ★要特別注意的另一個地方是:第2步記錄事務操作的改變是內存中進行的,還未寫到磁盤上的redo日志文件

    6.事務提交時所做的事情

    ①記錄SCN值(System Change Number)

    ②將在線重做日志記錄(位于SGA的redo日志緩沖區中)持久化到redo日志文件

    ③Oracle釋放資源和鎖

    ④Oracle將事務標記為已結束

    注意:只有在commit指令被發出后,才會將SGA中重做日志緩沖區的內容刷新到磁盤的redo日志文件。在LGWR進程執行前,重做日志一直存在于內存中,也被稱為在線重做日志。

    7.savepoint回滾和整個事務的回滾

    注意當Oracle事務回滾到某個savepoint時,在savepoint之后的所有后續savepoint將失效。但此時Transaction還是活躍且可繼續的。這一點不同于整個事務的回滾。

    8.自治事務

    從傳統上來說,一個事務只有在完整執行成功或回滾之后,才會進行下一個事務。而自治事務允許在一個事務中調用運行另一個事務,被調用事務執行完成后,調用事務繼續執行之前未完成的操作直至事務結束

    自治事務在被調用后,將和外圍事務完全獨立。彼此之間并不共享任何資源或者鎖,外圍事務所有未提交的改變對自治事務來說都是不可見。自治事務提交后外圍事務將可以看到改變。



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。


    Life,simple and happy!


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲系列国产精品制服丝袜第| 91人人区免费区人人| 久久亚洲精品成人综合| 国产成人一区二区三区免费视频| 日本免费一区二区三区四区五六区 | 亚洲精品乱码久久久久久久久久久久 | 亚洲国产精品无码观看久久| 婷婷精品国产亚洲AV麻豆不片| 亚洲伊人久久综合影院| 在线播放免费人成视频在线观看| 日韩免费人妻AV无码专区蜜桃| 一区二区三区免费精品视频| 亚洲自偷自偷在线制服| 国产又粗又猛又爽又黄的免费视频| 免费视频专区一国产盗摄| 亚洲男同gay片| 国产亚洲精品不卡在线| 99精品在线免费观看| 怡红院免费全部视频在线视频| 国产婷婷综合丁香亚洲欧洲| 亚洲综合区小说区激情区| 国产高清在线精品免费软件| 免费爱爱的视频太爽了| 成年女人毛片免费播放人| 免费精品国产自产拍在线观看图片| 91香焦国产线观看看免费| 久久综合国产乱子伦精品免费| 免费在线看黄网站| 亚洲av无码专区在线电影天堂 | 免费精品国自产拍在线播放| 久久综合亚洲色一区二区三区| 亚洲va久久久噜噜噜久久天堂| 久久久久国色AV免费观看性色| 久久久精品视频免费观看| 亚洲av片不卡无码久久| 亚洲国产夜色在线观看| 亚洲videosbestsex日本| 亚洲日本乱码卡2卡3卡新区| 精品亚洲综合久久中文字幕| 日韩高清免费在线观看| 日韩免费毛片视频|