Oracle學習筆記七 鎖

來源:互聯網
上載者:User

標籤:

鎖的概念
  • 鎖是資料庫用來控制共用資源並發訪問的機制。
  • 鎖用於保護正在被修改的資料
  • 直到提交或復原了事務之後,其他使用者才可以更新資料
  • 對資料的並發控制,保證一致性、完整性。

            

 

並行性 -允許多個使用者訪問同一資料一致性 - 一次只允許一個使用者修改資料完整性 - 為所有使用者提供正確的資料。如果一個使用者進行了修改並儲存,所做的修改將反映給所有使用者 鎖的類型 行級鎖:對操作的資料行進行鎖定,防止其他使用者(串連)進行修改。表級鎖:對整個表進行鎖定。 行級鎖對正在被修改的行進行鎖定。其他使用者可以訪問除被鎖定的行以外的行。  行級鎖是一種獨佔鎖定,防止其他事務修改此行。在使用以下語句時,Oracle會自動應用行級鎖:  1.INSERT  2.UPDATE  3.DELETE  4.SELECT … FOR UPDATESELECT … FOR UPDATE語句允許使用者一次鎖定多條記錄進行更新,鎖定的資料自能通過commit或者rollback進行提交或復原後解鎖 SELECT … FOR UPDATE文法:

 SELECT … FOR UPDATE [OF columns]
[WAIT n | NOWAIT];

SELECT * FROM order_master WHERE vencode=‘V002‘           FOR UPDATE OF odate, del_date;UPDATE order_master SET del_date=‘28-8月-05‘           WHERE vencode=’V002’;COMMIT;

 

 

SELECT * FROM order_master WHERE vencode=‘V002‘ FOR UPDATE WAIT 5;

 

 

SELECT * FROM order_master WHERE vencode=‘V002‘ FOR UPDATE NOWAIT;

 

 

表級鎖表級鎖鎖定整個表,限制其他使用者對錶的訪問。  

使用表級鎖使用命令顯示地鎖定表,應用表級鎖的文法是:

 LOCK TABLE table_name IN mode MODE;

 

 

 

  • 行共用:row share,禁止獨佔鎖定(不允許獨佔鎖定再鎖定),允許其他的使用者鎖定表資料行共用使用。

 

Lock table emp in row share mode;

 

 

  • 行排他:exclusive 禁止使用獨佔鎖定和共用鎖定
Lock table emp in row exclusive mode;

 

  • 共用鎖定:share,可以多個使用者同時鎖定一個表,但是只允許使用者查詢和不能修改資料

 

    • 1.鎖定表,僅允許其他使用者查詢表中的行
    • 2.禁止其他使用者插入、更新和刪除行
    • 3.多個使用者可以同時在同一個表上應用此鎖

       

  • 共用行排他:share row exclusive 比共用鎖定更多的限制,禁止使用共用鎖定及更高的鎖
  • 獨佔鎖定: exclusive,禁止其他的使用者再鎖定 限制最強的表鎖,僅允許其他使用者查詢該表的行。禁止修改和鎖定表
死結當兩個事務相互等待對方釋放資源時,就會形成死結,Oracle會自動檢測死結,並通過結束其中的一個事務來解決死結例:
--第一步:使用者1update emp2 set sal=sal+25 where empno=7782;--第二步:使用者2update emp2 set sal=sal+25 where empno=7566;--第三步:使用者1update emp2 set sal=sal+25 where empno=7566;--第四步:使用者2update emp2 set sal=sal+25 where empno=7782;--產生死結!!Oracle 自動解鎖!

 

 

Oracle學習筆記七 鎖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.