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

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

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

    隨筆-109  評(píng)論-187  文章-25  trackbacks-0
    ??????事務(wù)是用來保證數(shù)據(jù)的一致性( integrity )而鎖是保證數(shù)據(jù)的并發(fā)(控制多個(gè)事務(wù)的并發(fā))( concurrency )。 ? 鎖的級(jí)別越高,可能會(huì)影響數(shù)據(jù)庫的并發(fā)。鎖的級(jí)別越低一般來說數(shù)據(jù)庫的并發(fā)越好。 ? 鎖在 JDBC,JTA 以及容器管理的事務(wù)中的用法基本一樣,也有寫不同,主要在 JTA 分布式事務(wù)上個(gè)別又差異。 事務(wù)只是用來保證,數(shù)據(jù)一致性,一致性包括 : 能否保證與其他事務(wù)的隔離,以及能否在同一事務(wù)中保證重復(fù)讀,臟讀,臟寫等等方面。 ? Oracle 在不是手工加鎖的情況下, ORACLE 會(huì)自動(dòng)調(diào)度鎖。 ORACLE 自動(dòng)調(diào)度鎖得執(zhí)行順序,一般不會(huì)發(fā)生死鎖現(xiàn)象。有些數(shù)據(jù)庫會(huì)自動(dòng)調(diào)度數(shù)據(jù)庫鎖得級(jí)別,這就增加了死鎖的可能, ORACLE 永遠(yuǎn)不會(huì)自動(dòng)調(diào)度鎖的級(jí)別,死鎖發(fā)生時(shí), oracle 也會(huì)去自動(dòng)調(diào)度,這要延時(shí)一段時(shí)間, ORACLE 自己的策略,會(huì) ROLLBACK 一個(gè)事務(wù),以保證發(fā)生死鎖的 2 個(gè)事務(wù)都執(zhí)行下去。 ? 鎖的種類很多,有 DML,DDL 鎖以及其他,平時(shí)我們開發(fā)過程中主要是 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 鎖定,不允許再對(duì)表進(jìn)行 LOCK TABLE table IN EXCLUSIVE MODE

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

    UPDATE table ... ;

    DELETE FROM table ... ;?

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

    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 (可以說有多個(gè) S 鎖定一個(gè)表) ;
    允許進(jìn)行的操作,所有的查詢以及 SELECT ... FOR UPDATE, 和 LOCK TABLE ... IN SHARE MODE ,只允許本事務(wù)內(nèi)更新數(shù)據(jù)( update ,這種情況也是只允許當(dāng)前表上就一個(gè) 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 少了一點(diǎn),這里只是允許一個(gè) SRX 鎖定一個(gè)表
    不允許的操作:
    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 級(jí)別最高的鎖定形式: LOCK TABLE table IN EXCLUSIVE MODE;
    只允許其他事務(wù) 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
    ?

    ???????














    這個(gè)表上很清楚
    posted on 2006-11-30 10:36 小小程序程序員混口飯吃 閱讀(4524) 評(píng)論(2)  編輯  收藏 所屬分類: java 、oracle

    評(píng)論:
    # re: 事務(wù)與鎖的一些總結(jié) 2006-12-08 14:03 | BeanSoft
    學(xué)習(xí)一下!謝了!  回復(fù)  更多評(píng)論
      
    # re: 事務(wù)與鎖的一些總結(jié) 2006-12-08 15:23 | loocky
    大家一起學(xué)習(xí),這是從oracle的官方網(wǎng)站上看到的東西,就隨手總結(jié)了一下,國(guó)內(nèi)目前還沒有相關(guān)的文章的翻譯,我也希望大家能夠翻譯一些東西,整理出來。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 一级毛片试看60分钟免费播放| 亚洲 暴爽 AV人人爽日日碰| 久久亚洲美女精品国产精品| 亚洲色图综合网站| 91丁香亚洲综合社区| 精品无码专区亚洲| yellow免费网站| 9420免费高清在线视频| 亚洲福利电影在线观看| 亚洲午夜一区二区三区| 国产天堂亚洲国产碰碰| 成人性做爰aaa片免费看| 国产精品久久永久免费| 国产精品免费视频网站| 大地资源在线观看免费高清| 国产男女猛烈无遮挡免费网站| 久久久久国产成人精品亚洲午夜 | 爱情岛亚洲论坛在线观看| 国产精品永久免费视频| 免费无码又爽又刺激高潮视频 | 日本免费人成视频播放| 亚洲自偷自偷在线制服| 亚洲一区二区三区91| 一级A毛片免费观看久久精品 | 中文字幕免费在线看| 有色视频在线观看免费高清在线直播 | 亚洲人成电影网站久久| 国产精品免费观看视频| 无码精品A∨在线观看免费| 亚洲美女在线国产| 亚洲精品午夜久久久伊人| 在线观看亚洲免费视频| 免费精品无码AV片在线观看| 国产精品99久久免费| 久久亚洲精品成人| 亚洲第一视频网站| 日韩色日韩视频亚洲网站| 精品无码AV无码免费专区| 丁香亚洲综合五月天婷婷| 亚洲精彩视频在线观看| 一区免费在线观看|