Oracle表鎖定和查詢效能下降的sql語句

2021-09-25 09:00:09 字數 1196 閱讀 1384

根據這段時間的積累,總結幾個比較有用查詢資料庫效能的語句

查處鎖定表的session 的sid,serial#,os_user_name, machine name,

terminal 和執行的語句

select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,

l.os_user_name,s.machine, s.terminal,a.sql_text, a.action 

from v$sqlarea a,v$session s, v$locked_object l

where l.session_id = s.sid

and s.prev_sql_addr = a.address

order by sid, s.serial#;

發現551的session被鎖定了,詢問了下開發人員,時間和操作,確定對生成庫沒有任何印象。

sid   serial

551, 54589'

select * from v$locked_object;再次確認鎖定的物件

select * from v$session  t where t.sid='551' ;可以根據551,再次確定session

完全無誤後

使用賦予了

dba許可權的使用者,例如:zsdwas

執行:alter system kill session '551,54589';(殺除對應的session)

分析最耗資源的sql語句:

檢視oracle最耗資源的sid和使用者:

select sid,serial#,username,status,last_call_et from v$session where status='active' and username is not null order by last_call_et desc;

檢視上面對應uid的sql語句:

select sql_text from v$session a,v$sqltext_with_newlines b where decode(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value and a.sid=191 order by piece;

定位對應的sql語句;

oracle被鎖定表查詢與解鎖

oracle ebs操作某乙個form介面,或者後台資料庫操作某乙個表時發現一直處於 假死 狀態,可能是該錶被某一使用者鎖定,導致其他使用者無法繼續操作 鎖表查詢sql select object name,machine,s.sid,s.serial from gv locked object l...

解除oracle表鎖定

首先查詢阻塞的使用者 select rule s.username,decode l.type,tm table lock tx row lock null lock level,o.owner,o.object name,o.object type,s.sid,s.serial s.termina...

解決Oracle 表鎖定

select b.owner,b.object name,a.session id,a.locked mode from v locked object a,dba objects b where b.object id a.object id select b.username,b.sid,b.s...