oracle學習----DDL鎖理解

來源:互聯網
上載者:User

標籤:io   使用   sp   on   資料   bs   代碼   line   size   

DDL鎖分為三種

1.排他DDL鎖

2.共用DDL鎖

3.可中斷解析鎖

大部分DDL都帶有排他DDL鎖,如一個表被修改中,可以使用select查詢資料,但是大多數操作都是不允許執行的,包括所有其他DDL語句。

但是在oracle中,有一些DDL操作沒有DDL鎖也發生。比如online建立索引

線上建立索引,會帶有DL,OD,低級TM鎖,但是沒有排他DDL鎖

DL 直接載入鎖,對錶進行直接載入路徑與建立索引不能同時進行。

OD鎖 online DDL支援真正的聯機。

低級TM鎖 防止其他DDL發生,同時還允許DML正常進行

 

另一類是共用DDL鎖

建立過程或視圖時,會對其中涉及到的表添加共用DDL鎖,這樣可以修改表的內容但是不能修改表的結構。

可中斷解析鎖

會話解析一條語句時,對於該語句引用的每一個對象都會施加解析鎖,這個目的是如果以某種方式刪除或修改了引用對象,可以將共用池中已經解析的緩衝語句無效刷出。

 

查詢指定表的鎖情況
select
(select username from v$session where sid=v$lock.sid) username,
sid,
id1,
id2,
lmode,
request,block,v$lock.type
from v$lock
where id1=73834;//object_id  通過user_objects查詢

查詢當前會話的可中斷解析鎖,作用是發現代碼無法編譯或逾時等待可以通過這個查詢找到誰正在使用
set linesize 1000
select session_id sid,owner,name,type,mode_held held,mode_requested request
from dba_ddl_locks
where session_id = (select sid from v$mystat where rownum=1);

oracle學習----DDL鎖理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.