中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 11g-鎖

發布時間:2020-07-29 00:01:59 來源:網絡 閱讀:500 作者:Z細銘 欄目:關系型數據庫

Oracle 11g-鎖

Target:

1、理解鎖定的概念

2、掌握select for update的使用

3、理解不同鎖定的含義

 

鎖的概念:

1.鎖是數據庫用來控制共享資源并發訪問的機制;

2.鎖用于保護正在被修改的數據;

3.只是提交commit或者回滾rollback事務后,其他用戶才可以更新數據

 

鎖的優點:

1.一致性:一次只允許一個用戶修改數據(delete,update,insert)

2.并行性:允許多個用戶訪問同一數據(select);

3.完整性:為所有的用戶都提供正確的數據,如果一個用戶進行了修改并且保存,所做的修改將反映給所有的用戶;

 

鎖的類型:

1.行級鎖:對正在被修改的行進行鎖定,其他用戶可以訪問除被鎖定的行以外的行;

2.表級鎖:鎖定整個表,限制其他用戶對表的訪問。

 

行級鎖拓展1

1.行級鎖是一種排他鎖,防止其他事務修改此行

2.在使用以下語句時

INSERTUPDATEDELETE

SELECT … FOR UPDATE【語句允許用戶一次鎖定多條記錄進行更新】;

使用COMMITROLLBACK語句釋放鎖;

Oracle會自動應用行級鎖,當然也有表級鎖了。Select查詢不會加鎖。

 

行級鎖拓展2:  SELECT … FOR UPDATE[of colums][wait n][nowait]

<1>SQL> SELECT * FROM emp WHERE sal=1000 FOR UPDATE;

SQL> UPDATE emp SET sal = 3000 WHERE  sal =1000;

SQL> COMMIT;

 

<2>SQL> SELECT * FROM scott.emp WHERE sal=1000

           FOR UPDATE WAIT 5; [等待5秒不能鎖定即跳出]

 

<3>SQL> SELECT * FROM scott.emp WHERE sal=1000 FOR UPDATE NOWAIT ;

[不等待,若該行已被鎖定,就馬上跳出來]

 

查看鎖:select * from V$lock;

其中TX表示行級鎖,TM表示表級鎖

 

 

表級鎖拓展1:

語法:lock table table_name in [mode] mode

例子:lock table scott.emp in row share mode;

 

表級鎖拓展2:自上到下,限制越來越強

行共享 (ROW SHARE) – 禁止排他鎖定表【也就是允許其他用戶放exclusive鎖,但用戶可以進行增刪改查等操作。】

行排他(ROW EXCLUSIVE) – 禁止使用排他鎖和共享鎖

共享鎖(SHARE)【select * from emp for update 類似】  鎖定表,僅允許其他用戶查詢表中的行

禁止其他用戶插入、更新和刪除行

多個用戶可以同時在同一個表上應用此鎖

共享行排他(SHARE ROW EXCLUSIVE) – 比共享鎖更多的限制,禁止使用共享鎖及更高的鎖

排他(EXCLUSIVE) – 限制最強的表鎖,僅允許其他用戶查詢該表的行。禁止修改和鎖定表

===》理解共享和排他:

共享:如果設置了共享鎖,其他用戶還可以加鎖;

排他:如果設置了排他鎖,其他用戶不可以枷鎖。 

 

 


向AI問一下細節
推薦閱讀:
  1. Oracle鎖
  2. Oracle中鎖機制

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁武县| 富平县| 鄱阳县| 兴和县| 佛冈县| 沅江市| 灌阳县| 安塞县| 眉山市| 潍坊市| 观塘区| 彭州市| 颍上县| 唐山市| 吉隆县| 即墨市| 博湖县| 乌兰察布市| 兴海县| 屯昌县| 汝南县| 会宁县| 扎兰屯市| 收藏| 武乡县| 太和县| 海门市| 洪湖市| 宝鸡市| 贺州市| 隆化县| 平塘县| 奇台县| 乌海市| 东乌珠穆沁旗| 吉林市| 如东县| 台安县| 南安市| 辽中县| 梓潼县|