超越自我

          一切皆有可能

           

          DB2和Oracle的鎖機制

          DB2和Oracle的鎖機制
          1.DB2的鎖
          具體詳見轉貼
          http://www-900.ibm.com/cn/support/nav/200402/p45-1.shtml
          2.Oracle的鎖
          1>行級鎖:tx
          ??行被排他鎖定;
          ??在某行的鎖被釋放之前,其他用戶不能修改此行;
          ??使用commit或者rollback命令釋放;
          ????? 使用insert,update的時候自動被上鎖;
          ????? 用select ...for update語句獲得行級鎖:被加鎖的對象是所有
          ????? 被select 到的行;
          ????? 防止其他用戶修改此行,但可以查詢;
          ????? 具體的形式為:
          ????? ??如果鎖定所有列:select..for update;
          ????? ??鎖定特定列:select ..for update of ename;
          ????? ? 不合理的是:當一個用戶鎖定時,別的用戶不知道,只會等;
          ????? ? 所以用select ..for update wait(second):
          ????? ??超過secong秒后加鎖的用戶還沒有解鎖的話,
          ????? ??其他等待也嘗試加鎖的的用戶就會得到一個錯誤信息;

          ?2>表級鎖:tm?
          ??可以設置為三種模式:Lock table userID.tablename in [] mode;
          ??共享:其他用戶只能查詢,不能更新,刪除,插入;
          ??a.多個用戶可以同時對同一個表設置共享鎖;
          ???
          ??b.共享更新:in share update mode;
          ???鎖定要被更新的行,其他用戶可以同時查詢,
          ???插入,更新未被鎖定的行,即未被更新的行;
          ?? 等于select..for update;
          ???允許多個用戶同時鎖定表中不同的行;
          ??c.排他:
          ???僅允許其他用戶查詢,不允許插入,刪除,更新;
          ???在同時間僅允許一個用戶在表上放置排他鎖;
          ???如果加上nowait的話,如果發現該表已經被鎖定,
          ???就不再等待,立即返回一個錯誤信息;

          posted on 2006-06-29 17:50 jame 閱讀(381) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          UML

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 玛曲县| 玛多县| 浏阳市| 马尔康县| 边坝县| 福贡县| 太和县| 盐边县| 靖安县| 广东省| 南汇区| 平邑县| 措美县| 阳春市| 犍为县| 广东省| 伊春市| 阳高县| 玉门市| 文水县| 西丰县| 外汇| 阿瓦提县| 云龙县| 绥宁县| 文水县| 米易县| 蓬莱市| 白河县| 韶关市| 博乐市| 桐柏县| 缙云县| 乐陵市| 平安县| 乌拉特后旗| 托克逊县| 井陉县| 启东市| 金华市| 定南县|