排查那些長期占用鎖的sql(測試)

2021-06-23 06:08:20 字數 847 閱讀 2573

1. 執行語句塊:

begin

for i in 10001..1000000 loop

insert into test1 values(i,i);

end loop;

end;

2.查詢哪些物件占有鎖(v$locked_object;)

select * from v$locked_object;

注:object_id是擁有鎖的物件(如表),session_id是會話 的id,oracle_username是會話的使用者名稱,os_user_name是作業系統的使用者名稱,process是作業系統的程序號(我這裡是sql developer程序)。

3.檢視產生該鎖的sql語句。

select s.sid,sql_text from v$session s,v$sqlarea a,v$locked_object b

where s.sid=b.session_id and s.prev_sql_addr=a.address;

說明:v$sqlarea主要儲存了共享池中的sql語句資訊,就是執行過的sql語句,address記錄sql的儲存記憶體位址。v$session的prev_sql_addr列記錄了會話執行過的sql記錄(位址)。

上面的結果說明了,是語句塊執行玩沒有提交造成的。如果是還在執行,sql_text應該是 insert into ...............。

4.查詢該會話資訊

select * from v$session s, v$locked_object l where s.sid=l.session_id;

可以通過命令  alter system kill session '129,319';殺死該會話。

MYSQL中的那些鎖

在電腦科學中,鎖是在執行多執行緒時用於強行限制資源訪問的同步機制,即用於在併發控制中保證對互斥要求的滿足。在資料庫的鎖機制中介紹過,在dbms中,可以按照鎖的粒度把資料庫鎖分為行級鎖 innodb引擎 表級鎖 myisam引擎 和頁級鎖 bdb引擎 行級鎖是mysql中鎖定粒度最細的一種鎖,表示只針...

windows那些討厭的CPU占用程序

1 任意生成乙個檔案,並把檔案改名為ws2 32.dll,然後複製到某程式的目錄下,該程式便無法開啟。把ws2 32.dll放到ie程式目錄下,加個空的 iexplore.exe.manifest 資料夾到ie程式目錄,一般為c program files internet explorer,則ie...

Oracle 關鍵時刻才瘋狂尋覓的那些SQL語句

1 鎖表解決 查詢資料庫鎖表使用者,並生成解鎖語句 select o.owner,o.object name,o.object type,select c.machine from v session c where c.sid s.sid select c.program from v sessi...