資料庫鎖大於600秒的session的抓取

2021-06-02 11:37:48 字數 1008 閱讀 5093

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 意向鎖是表級鎖 什麼是意向鎖呢?如果沒有意向鎖,當已經有人使用行鎖對...