檢視當前資料庫鎖表的情況
select * from information_schema.innodb_trx;
殺掉查詢結果中鎖表的trx_mysql_thread_idkill trx_mysql_thread_id
查詢是否鎖表show open tables where in_use > 0;
查詢程序show processlist
殺掉查詢到相對應的程序kill id
檢視正在鎖的事務select * from information_schema.innodb_locks;
檢視等待鎖的事務select * from information_schema.innodb_lock_waits;
操作的前提 用 sys 使用者 以 sysdba角色登入
查詢被鎖的表
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
查詢那個session引起表被鎖select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
解鎖表alter system kill session 'sid, serial#';
檢視被鎖的表select p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name
from v$process p, v$session a, v$locked_object b, all_objects c
where p.addr = a.paddr
and a.process = b.process
and c.object_id = b.object_id;
批量解鎖declare cursor mycur is
select b.sid,b.serial#
from v$locked_object a,v$session b
where a.session_id = b.sid group by b.sid,b.serial#;
begin
for cur in mycur
loop
execute immediate ( 'alter system kill session '''||cur.sid || ','|| cur.serial# ||''' ');
end loop;
end;
oralce與mysql中,如何刪除重覆記錄
最近遇到這麼乙個問題 要求刪除表中重複的記錄。具體來說 比如有一張使用者表,使用者姓名不是主鍵可以重複,存在這種情況,乙個使用者姓名被錄入了好幾次,如何刪除重複的記錄,同時要保留一條該使用者錄。沒有具體說明保留那條記錄,只要使用者姓名重複的保留一條即可。示例 animal 表 create tabl...
mysql 與Oracle 函式對比
oracle 函式和mysql 函式比較 1.oracle 中的to number 轉換成數字 oracle select to number 123 from dual 123 select to char 33 from dual 33 mysql select conv 123 10,10 1...
mysql與oracle 比較日期
select from cot gw main where create date to date 20150105 yyyymmdd 如上語句可能想查詢出建立日期在2015年1月5日那天或之前的,但實際上因為你的create date是date屬性的 當你將條件設定為2015年01月05號,而不設...