隨筆-19  評論-5  文章-3  trackbacks-0
          比如有兩個用戶一個userA,一個userB
          當userA發(fā)出 select * from 表名 for update of 字段 時
          這是紀錄被鎖住等待更新
          當userB此時也發(fā)出select * from 表名 for update of 字段 時
          并且for update of 的紀錄已經(jīng)被userA鎖定
          這是userB只能等待userA提交后才能獲取到userA被占用的紀錄
          如果userA不提交userB就會無限期的等待
          解決方法
          userB執(zhí)行select * from 表名 for update of 字段 no wait 10;
          這時雖然紀錄被userA鎖定但是userB會等待10秒如果10秒內(nèi)userA釋放
          了紀錄,則userB獲取該鎖,如果10秒后userA未釋放鎖,則userB返回
          錯誤消息
          ora-30006:資源已被占用;執(zhí)行此操作時出現(xiàn)wait超時

          --------------------------------------------------------------------

          userA鎖住一條紀錄
          userB鎖住一條紀錄
          userA請求鎖住userB正在鎖住的紀錄
          而同時userB請求鎖住userA正在鎖住的紀錄
          這時候就會產(chǎn)生死鎖

          --------------------------------------------------------------------

          如果在事務(wù)中執(zhí)行了一條不滿足條件的update語句,則執(zhí)行全表掃描,把行級鎖上升為表級鎖,多個這樣的事務(wù)執(zhí)行后,就很容易產(chǎn)生死鎖。
           
          版權(quán)歸原作者和各發(fā)布網(wǎng)站所有,此文章僅供學習參考之用 

          天天學習,好好向上——

          posted on 2008-11-07 11:34 東頭bing阿頭 閱讀(1496) 評論(0)  編輯  收藏 所屬分類: DataBase



          主站蜘蛛池模板: 肥东县| 海南省| 锦屏县| 西峡县| 汝阳县| 巴林左旗| 普安县| 黄浦区| 调兵山市| 麻城市| 筠连县| 喀什市| 盘山县| 阳城县| 罗山县| 五台县| 巴林右旗| 灵寿县| 武山县| 永年县| 酒泉市| 泾川县| 福州市| 时尚| 重庆市| 类乌齐县| 克什克腾旗| 武邑县| 澄城县| 浑源县| 即墨市| 乌鲁木齐市| 耒阳市| 洛南县| 扎鲁特旗| 兰西县| 原阳县| 鹤山市| 隆德县| 凤山市| 青龙|