Oracle table-lock的5種模式

來源:互聯網
上載者:User

Oracle中的鎖定可以分為幾類:DML lock(data lock),DDL lock(dictionary lock)和internal lock/latch。
DML lock又可以分為row lock和table lock。row lock在select.. for update/insert/update/delete時隱式自動產生,而table lock除了隱式產生,也可以調用lock table <table_name> in </table_name> name來顯示鎖定。
如果不希望別的session lock/insert/update/delete表中任意一行,只允許查詢,可以用lock table table_name in exclusive mode。(X)這個鎖定模式層級最高,並發度最小。

如果允許別的session查詢或用select for update鎖定記錄,不允許insert/update/delete,可以用lock table table_name in share row exclusive mode。(SRX)

如 果允許別的session查詢或select for update以及lock table table_name in share mode,只是不允許insert/update/delete,可以用lock table table_name in share mode。(share mode和share row exclusive mode的區別在於一個是非搶佔式的而另一個是搶佔式的。進入share row exclusive mode後其他session不能阻止你insert/update/delete,而進入share mode後其他session也同樣可以進入share mode,進而阻止你對錶的修改。(S)

還有兩種鎖定模式,row share(RS)和row exclusive(RX)。他們允許的並行作業更多,一般直接用DML語句自動獲得,而不用lock語句。

相關文章

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.