超越自我

          一切皆有可能

           

          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

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 湟源县| 同仁县| 霍州市| 海原县| 罗甸县| 郑州市| 玛多县| 天津市| 北安市| 大姚县| 贵阳市| 韩城市| 都匀市| 堆龙德庆县| 合阳县| 眉山市| 红河县| 平邑县| 郎溪县| 龙江县| 宽甸| 三穗县| 新沂市| 临潭县| 开平市| 大安市| 华坪县| 呼伦贝尔市| 德昌县| 绩溪县| 金堂县| 巨鹿县| 洞口县| 昭苏县| 依安县| 金溪县| 庆元县| 沾化县| 汕尾市| 竹溪县| 剑阁县|