激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應(yīng)
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

        Oracle事務(wù) 行級鎖 保存點 回滾 提交

        發(fā)布時間:  2012/9/5 17:36:02

        Oracle事務(wù)

        一般事務(wù)(DML)即數(shù)據(jù)修改(增、刪、改)的事務(wù)
        事務(wù)會將所有在事務(wù)中被修改的數(shù)據(jù)行加上鎖(行級鎖),來阻止其它人(會話)同時對這些數(shù)據(jù)的修改操作。
        當(dāng)事務(wù)被提交或回滾后,這些數(shù)據(jù)才會被釋放鎖。

        舉個例子:-
         

        當(dāng)A操作一條數(shù)據(jù)N1后,暫未提交事務(wù) ,此時B又上來操作同一條數(shù)據(jù)N1,這時的情況是:
        1、所有除A以外的人看不到被A所修改后的數(shù)據(jù)
        2、B會處于等待狀態(tài),直到A提交或回滾了針對這條數(shù)據(jù)的修改(這也就是行級鎖的概念)
        3、當(dāng)A提交事務(wù)后,所有人可以看到被A修改后的數(shù)據(jù),看不到B修改后的數(shù)據(jù)。但B能看到自己修改后的數(shù)據(jù)(與A一樣,因為B還未提交事務(wù))。
        4、當(dāng)B提交事務(wù)后,所有人可以看到被B修改后的數(shù)據(jù)。

        由上可以看出,對同一條數(shù)據(jù)的事務(wù)處理,必須按先后順序進(jìn)行。
        即:A先提交了事務(wù)后,B才可以提交事務(wù),否則B將無法對這條數(shù)據(jù)進(jìn)行修改(B會在操作這條數(shù)據(jù)時處于等待狀態(tài),直到A提交或回滾了事務(wù),釋放了這行數(shù)據(jù)的鎖)。

        這里注意一點,這里所說有A與B并不是指二個Oracle帳戶,而是二個連接會話。上面只是為了方便舉例。
        就是說即使是在同一臺電腦上用同一個Oracle帳戶,但同時分別打開了二個連接會話(比如同時打開二個PL/SQL并用相同帳戶連接到同一個庫中),就會被視為A、B兩個人。

        在PS/SQL中,對數(shù)據(jù)修改完后,如果用戶未提交事務(wù),但關(guān)閉或斷開了PS/SQL,此時Oracle會立即提交此會話的事務(wù)。

        我們可以事務(wù)中使用保存點來回滾到指定的時間節(jié)點上來,但如果用提交事務(wù)(commit)后,所有保存點將被刪除。

        舉個舉子:

        savepoint a1;    --設(shè)置一個保存點 a1;

        update tmp set username='張三' where userid='101'  --修改一條數(shù)據(jù)

        savepoint a2;   --設(shè)置一個保存點 a1;

        update tmp set username='李四' where userid='102  --再修改一條數(shù)據(jù)

         

        rollback to a2;   --回滾到a2 保存點。 此時在 a2 保存點之后的所有數(shù)據(jù)修改視為無效。

        rollback to a1;   --這里可以再從a2保存點再回滾到a1 保存點。 此時在 a1 保存點之后的所有數(shù)據(jù)修改視為無效。

        rollback;           --回滾全部。即撤消至上一次提交事務(wù)后的所有數(shù)據(jù)修改。

        commit;  --提交事務(wù) 將回滾后的事務(wù)提交,并會刪除所有保存點。

        注意:我們可以從a2向前再回滾到a1 ,但無法從a1回滾到a2。也就是只能向前回滾,不能從前面的點再向后回滾!

        只讀事務(wù) 即,只用于select 查詢的事務(wù)

        只讀事務(wù)主要用于在某一個時間點對數(shù)據(jù)的查詢統(tǒng)計。如:在18:00創(chuàng)建一個只讀事務(wù),然后可以開始統(tǒng)計某張表的記錄數(shù)。此時18:00之后新添加到這張表中的數(shù)據(jù)就不會進(jìn)入到統(tǒng)計中去。也就是創(chuàng)建只讀事務(wù)的會話連接人,將無法看到在創(chuàng)建只讀事務(wù)之后其它任何人對數(shù)據(jù)的真實修改。

        方法是:

        set transaction read only;  --在此之后,擁有此會話的連接人將無法看到其它人對數(shù)據(jù)的任何改動。用戶可以用select 進(jìn)行此時間點的統(tǒng)計查詢

        set transaction read write;  --取消只讀事務(wù)

        只讀事務(wù)沒有回滾和提交的功能也不記錄回滾LOG。

        只讀事務(wù)最大的用處是保證在某個時間點查詢結(jié)果的一致性。換句話說,如果你要統(tǒng)計很多信息,有多個select查詢時,但你執(zhí)行完第一個查詢后(如用戶信息統(tǒng)計),可能其它人進(jìn)來修改了某些數(shù)據(jù)你正在查詢的數(shù)據(jù)。這時你再進(jìn)行第二個查詢(如用戶信息的統(tǒng)計或其它有關(guān)用戶信息的查詢)。這時候?qū)⒊霈F(xiàn)數(shù)據(jù)查詢結(jié)果的不一致,第二次查詢的結(jié)果會由于數(shù)據(jù)被修改了而與第一次查詢結(jié)果一不樣。只讀事務(wù)正是解決這類問題的辦法。

        其實Oracle為了優(yōu)化查詢在對于單條查詢時也會啟動只讀事務(wù)(就是在你開始執(zhí)行查詢時會有一個只讀事務(wù)點,到查詢結(jié)束前,在這期間的數(shù)據(jù)修改都被無視掉),你無須手動創(chuàng)建只讀事務(wù)。但多條查詢時我們就必須手動創(chuàng)建只讀事務(wù)。


        本文出自:億恩科技【mszdt.com】

        服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機 24小時售后服務(wù)電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務(wù)電話:0371-60135900
      11. 專注服務(wù)器托管17年
        掃掃關(guān)注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務(wù)熱線