oracle中檢視當前系統中鎖表情況
select * from vloc
kedo
bjec
t可以通
過查詢v
locked_object 可以通過查詢 v
locked
obj
ect可
以通過查
詢vlocked_object拿到sid和objectid,
然後用sid和vses
sion
鍊錶查詢
是哪裡鎖
的表,用
vsession鍊錶查詢是**鎖的表, 用v
sessio
n鍊錶查
詢是**
鎖的表,
用vsession中的objectid欄位和dba_objects的id欄位關聯,
查詢詳細的鎖表情況。
查詢sql如下:
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from vloc
kedo
bjec
tlo,
dbao
bjec
tsao
,v
locked_object lo, dba_objects ao, v
locked
obj
ectl
o,db
aob
ject
sao,
vsession sess, v$process p
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
查詢是什麼sql引起了鎖表的原因,sql如下:
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 vsql
area
a,
vsqlarea a, v
sqlare
aa,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#;
oracle解鎖的方法
alter system kill session 『sid,serial#』;
spid 鎖住的程序號
serial# v$session 這個檢視中取出來的
Oracle鎖表的原因及解鎖方法
產生的原因最大的可能就是更改資料沒有提交事務,資料庫就將表鎖住!所以在更新時不要用select from a for update這樣的語句很容易鎖表,可能用select t.rowid from t 這樣的語句代替,這個也是資料庫推薦使用的語句。解鎖的方法 1 檢視鎖表程序 sql select ...
Oracle使用者被鎖的原因及解決辦法
oracle使用者被鎖的原因及解決辦法 在登陸時被告知test使用者被鎖 1 用dba角色的使用者登陸,進行解鎖,先設定具體時間格式,以便檢視具體時間 sql alter session set nls date format yyyy mm dd hh24 mi ss session altere...
資料庫鎖表原因及解決思路
1 鎖表發生在insert update delete 中 2 鎖表的原理是 資料庫使用獨佔式封鎖機制,當執行上面的語句時,對錶進行鎖住,直到發生commite 或者 回滾 或者退出資料庫使用者 3 鎖表的原因 第一 a程式執行了對 tablea 的 insert 並還未 commite時,b程式也...