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

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

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

    隨筆-109  評論-187  文章-25  trackbacks-0
    ??????事務是用來保證數據的一致性( integrity )而鎖是保證數據的并發(控制多個事務的并發)( concurrency )。 ? 鎖的級別越高,可能會影響數據庫的并發。鎖的級別越低一般來說數據庫的并發越好。 ? 鎖在 JDBC,JTA 以及容器管理的事務中的用法基本一樣,也有寫不同,主要在 JTA 分布式事務上個別又差異。 事務只是用來保證,數據一致性,一致性包括 : 能否保證與其他事務的隔離,以及能否在同一事務中保證重復讀,臟讀,臟寫等等方面。 ? Oracle 在不是手工加鎖的情況下, ORACLE 會自動調度鎖。 ORACLE 自動調度鎖得執行順序,一般不會發生死鎖現象。有些數據庫會自動調度數據庫鎖得級別,這就增加了死鎖的可能, ORACLE 永遠不會自動調度鎖的級別,死鎖發生時, oracle 也會去自動調度,這要延時一段時間, ORACLE 自己的策略,會 ROLLBACK 一個事務,以保證發生死鎖的 2 個事務都執行下去。 ? 鎖的種類很多,有 DML,DDL 鎖以及其他,平時我們開發過程中主要是 DML,DDL 鎖。 DML 鎖又分很多方面:
    RS: row share RX: row exclusive S: share SRX: share row exclusive X: exclusive??
    ( 1 ) RS 可以通過一下聲明方式來鎖定表的行
    SELECT ... FROM table ... FOR UPDATE OF ... ;?

    LOCK TABLE table IN ROW SHARE MODE;

    一旦被 RS 鎖定,不允許再對表進行 LOCK TABLE table IN EXCLUSIVE MODE

    ( 2 ) RX 可以通過一下聲明方式來鎖定表的行
    INSERT INTO table ... ;

    UPDATE table ... ;

    DELETE FROM table ... ;?

    LOCK TABLE table IN ROW EXCLUSIVE MODE;
    一旦通過 RX 鎖定了表中的行,不允許對表進行下列操作

    LOCK TABLE table IN SHARE MODE;?

    LOCK TABLE table IN SHARE EXCLUSIVE MODE;

    LOCK TABLE table IN EXCLUSIVE MODE;


    ( 3 ) s ( share table lock )可以通過以下方式鎖定表
    LOCK TABLE table IN SHARE MODE (可以說有多個 S 鎖定一個表) ;
    允許進行的操作,所有的查詢以及 SELECT ... FOR UPDATE, 和 LOCK TABLE ... IN SHARE MODE ,只允許本事務內更新數據( update ,這種情況也是只允許當前表上就一個 S 鎖)
    不允許的操作
    LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;

    LOCK TABLE table IN EXCLUSIVE MODE;

    LOCK TABLE table IN ROW EXCLUSIVE MODE;
    ( 4 ) SRX 通過以下方式鎖定表
    LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;
    比 S 少了一點,這里只是允許一個 SRX 鎖定一個表
    不允許的操作:
    LOCK TABLE table IN SHARE MODE;

    LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;

    LOCK TABLE table IN ROW EXCLUSIVE MODE;

    LOCK TABLE table IN EXCLUSIVE MODE;
    ( 5 ) X 級別最高的鎖定形式: LOCK TABLE table IN EXCLUSIVE MODE;
    只允許其他事務 QUERY 不允許其他操作。

    Table 13-4 Locks Obtained By DML Statements
    DML Statement Row Locks? Mode of Table Lock
    SELECT ... FROM table? ?
    INSERT INTO table ... X RX
    UPDATE table ... X RX
    DELETE FROM table ... X RX
    SELECT ... FROM table ... ???FOR?UPDATE OF ... X RS-
    LOCK TABLE table IN ... ? ?
    ROW SHARE MODE ? RS
    ROW EXCLUSIVE MODE ? RX
    SHARE MODE ? S
    SHARE EXCLUSIVE MODE ? SRX
    EXCLUSIVE MODE ? X
    ?

    ???????














    這個表上很清楚
    posted on 2006-11-30 10:36 小小程序程序員混口飯吃 閱讀(4532) 評論(2)  編輯  收藏 所屬分類: javaoracle

    評論:
    # re: 事務與鎖的一些總結 2006-12-08 14:03 | BeanSoft
    學習一下!謝了!  回復  更多評論
      
    # re: 事務與鎖的一些總結 2006-12-08 15:23 | loocky
    大家一起學習,這是從oracle的官方網站上看到的東西,就隨手總結了一下,國內目前還沒有相關的文章的翻譯,我也希望大家能夠翻譯一些東西,整理出來。  回復  更多評論
      
    主站蜘蛛池模板: 亚洲AV成人精品日韩一区| 亚洲综合av永久无码精品一区二区 | 亚洲一区二区三区首页| 中文字幕av免费专区| 亚洲天堂在线视频| 四虎影视久久久免费| 国产成人亚洲综合| 国产免费播放一区二区| 亚洲欧洲日产国码无码网站 | 亚洲第一街区偷拍街拍| 久久精品国产亚洲av麻豆| 女人隐私秘视频黄www免费| 在线亚洲午夜理论AV大片| 伊人免费在线观看高清版| 亚洲av无码av制服另类专区| 免费一级毛片无毒不卡| 亚洲美女视频免费| 三年片在线观看免费大全| 亚洲国产av玩弄放荡人妇| 亚洲AⅤ无码一区二区三区在线 | 黄色a级免费网站| 狠狠色婷婷狠狠狠亚洲综合| a级毛片毛片免费观看久潮| 亚洲国产精品人久久| 免费影院未满十八勿进网站| 亚洲人成色99999在线观看| 亚洲国产精品视频| 国内精品久久久久影院免费| 亚洲理论片在线观看| 永久免费看mv网站入口| 亚洲最新视频在线观看| 精品久久久久国产免费| 国产成人精品亚洲一区| 成人黄动漫画免费网站视频| 色拍自拍亚洲综合图区| 成年女人毛片免费视频| 一级毛片免费观看不收费| 亚洲精品电影天堂网| 免费一级毛片在级播放| 久久这里只精品热免费99| 成人国产网站v片免费观看|