create or replace procedure moni_lock is
begin
into moni_lock_block
select seq_mlb.nextval, mkb.*
from (select /*+rule*/
do.owner || '.' || do.object_name,
vs.last_call_et,
vs.username,
vs.osuser,
vs.machine,
vs.program,
vs.sid,
'(' || vs.sid || ',' || vs.serial# || ')',
sys_context('userenv', 'instance_name'),
sysdate,
vsq.sql_text
from v$lock a,
v$session vs,
v$locked_object vl,
dba_objects do,
v$sqlarea vsq
where exists (select 1
from v$lock b
where a.id1 = b.id1
and a.id2 = b.id2
and a.sid <> b.sid)
and vs.sql_address = vsq.address(+)
and a.sid = vs.sid
and a.sid = vl.session_id
and vl.object_id = do.object_id
and a.block = 1
and vs.last_call_et > 600
order by sid) mkb
where mkb.sid is not null;
commit;
end moni_lock;
資料庫的鎖
相當好的文章!希望以後結合實踐再好好理解。innodb中的事務隔離級別和鎖的關係 mysql faq 系列 如何檢視當前最新事務id mysql 對於千萬級的大表要怎麼優化?鎖有悲觀鎖和樂觀鎖。悲觀鎖中分共享鎖和排他鎖。在事務中,讀資料的時候加分享鎖 其他事務還可以加分享鎖,但是不能加排他鎖 寫資料...
資料庫的鎖
innodb 除了支援行級鎖,還支援由 mysql 服務層實現的表級鎖 lock tables write在指定的表加上表級排他鎖 當這兩種鎖同時存在時,可能導致衝突。例如,事務 a 獲取了表中一行資料的讀鎖 然後事務 b 申請該錶的寫鎖 例如修改表的結構 如果事務 b 加鎖成功,那麼它就應該能修改...
資料庫的鎖
鎖是用於管理對共享資源的併發訪問,是資料庫系統區別於檔案系統的乙個關鍵特性 本文主要來談innodb引擎,innodb引擎支援行鎖 表鎖粒度的鎖 為了支援多粒度鎖定,innodb 儲存引擎引入了意向鎖 intention lock 意向鎖是表級鎖 什麼是意向鎖呢?如果沒有意向鎖,當已經有人使用行鎖對...