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

溫馨提示×

溫馨提示×

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

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

Oracle鎖

發布時間:2020-07-02 03:07:09 來源:網絡 閱讀:628 作者:oracle夢想 欄目:關系型數據庫

1、定義:

鎖(lock)機制用于管理對共享資源的并發訪問(使對這些共享資源的并發性訪問串行化),同時還能提供數據完整性和一致性。

2、Oracle鎖特征:

Oracle中鎖不是稀有資源;

Oracle不會自動升級鎖,永遠不會;

 Oracle 中,行級鎖沒有相關的開銷

3、Oracle鎖分類

DML

DDL

內部鎖或LATCH

4、鎖一覽圖

鎖代碼

鎖模式名稱

鎖模式簡寫

鎖模式級別

備注說明

隱式產生鎖

顯式產生鎖

0

None

None


無鎖模式,select操作便是這樣的情況



1

Null

Null

表級鎖

Oracle在內存中自動加的鎖,主要起通知作用



2

Row-S

SS

表級鎖


10g版本前:FOR UPDATE

LOCK TABLE 表名 IN ROW SHARE MODE;

3

Row-SX

SX

表級鎖

行級排它鎖,主要由DML語句引起

10g版本后:FOR UPDATEDML語句

LOCK TABLE 表名 IN ROW EXCLUSIVE MODE;

4

Share

S

表級鎖

共享鎖、只讀鎖


LOCK TABLE 表名 IN  SHARE MODE;

5

S/Row-X

SSX

表級鎖

共享行排它鎖


LOCK TABLE 表名 IN SHARE ROW EXCLUSIVE MODE;

6

Exclusive

X

表級鎖/行級鎖

排它鎖



RRow  SShare XExclusive


5、TM鎖兼容性


N

SS

SX

S

SSX

X

N

YES

YES

YES

YES

YES

YES

SS

YES

YES

YES

YES

YES

NO

SX

YES

YES

YES

NO

NO

NO

S

YES

YES

NO

YES

NO

NO

SSX

YES

YES

NO

NO

NO

NO

X

YES

NO

NO

NO

NO

NO


6、鎖常用sql

--測試子表:成績表

SELECT * FROM score;

--測試父表:學生信息表

SELECT * FROM student;

--查詢當前會話值

SELECT * FROM v$mystat WHEREROWNUM='1';

--動態性能視圖 v$locked_object 各字段的含義

SELECT l.XIDUSN         AS回滾段號,

      l.XIDSLOT         AS回滾槽號,

      l.XIDSQN          AS回滾序列號,

      l.OBJECT_ID       AS被鎖對象ID,

      l.SESSION_ID      AS持有鎖對象會話ID,

      l.ORACLE_USERNAME AS持有鎖的oracle用戶名,

      l.OS_USER_NAME    AS持有鎖操作系統用戶名,

      l.PROCESS         AS操作系統進程號,

      l.LOCKED_MODE     AS鎖模式

  FROM v$locked_object l;

--當前用戶創建的所有對象,列出部分常用字段含義

SELECT uo.object_name AS對象名稱,

      uo.object_id   AS對象ID,

       uo.object_typeAS對象類型

  FROM user_objects uo;

--通過v$locked_object與user_objects兩表關聯可以得出被鎖的是哪個表以及是被哪個用戶鎖的

SELECT uo.object_name   AS對象名稱,

      uo.object_type    AS對象類型,

      l.ORACLE_USERNAME AS持有鎖的oracle用戶名,

      l.LOCKED_MODE     AS鎖模式

  FROM v$locked_object l,user_objects uo

 WHERE l.OBJECT_ID =uo.object_id;

/* AND l.SESSION_ID=&session_id;*/

--查詢所有正在等待獲得鎖的會話ID及鎖類型

SELECT w.waiting_session AS等待鎖的會話ID,

      w.holding_session AS持有鎖的會話ID,

      w.lock_type       AS鎖類型,

      w.mode_held       AS鎖機制

  FROM dba_waiters w;

--動態性能視圖事務執行列表(未提交狀態),BLOCK=1是堵塞者,BLOCK=0是被堵塞者

SELECT * FROM v$transaction_enqueue;

--查詢阻擋關系

SELECT (SELECT s.USERNAME FROM v$session s WHERE s.SID = a.SID) AS阻擋者名,

       a.SID AS阻擋者會話ID,

       '正在阻擋'AS行為,

       (SELECT s.USERNAME FROM v$session s WHERE s.SID = b.SID) AS被阻擋者名,

       b.SID AS被阻擋者會話ID

  FROM v$lock a, v$lock b

 WHERE a.ID1 = b.ID1

   AND a.ID2 = b.ID2

   AND a.BLOCK = 1

   AND b.REQUEST > 0;

--根據會話ID查詢前一步sql操作語句,這個語句不適合應用程序

SELECT sq.sql_text

  FROM v$sql sq

 WHERE sq.SQL_ID =

       (SELECT s.SQL_ID FROM v$session s WHERE s.SID =&session_id);


向AI問一下細節

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

AI

哈尔滨市| 武汉市| 东阿县| 综艺| 武强县| 宕昌县| 梁山县| 张家界市| 宝坻区| 类乌齐县| 虞城县| 高雄县| 尉犁县| 静乐县| 共和县| 五大连池市| 高密市| 霍邱县| 兴仁县| 阿图什市| 桐乡市| 鲁山县| 瓮安县| 河池市| 巴里| 上饶市| 望奎县| 三亚市| 吴桥县| 新建县| 绍兴县| 新营市| 武汉市| 根河市| 烟台市| 喀什市| 延津县| 南汇区| 曲阳县| 兰州市| 嘉黎县|