SybaseとOracleデータベースのデッドロックの問合せ方法


Sybaseクエリデッドロックspid:

select l.spid,
       locktype=convert(char(12),name),
       dbname=convert(char(15),db_name(l.dbid)),
       'table'=convert(char(15),object_name(l.id,l.dbid)),
       page,
       class=convert(char(15),class),
       hostname,
       cmd
from master..syslocks l,master..spt_values v,master..sysprocesses p
where l.type = v.number and
      v.type = 'L' and
      l.spid = p.spid
order by spid

sp_whoロックテーブルの表示
sp_ロックロックロックされたテーブルのid番号を表示
dbcc traceon(3604)
dbcc sqltext(pid)pid関連sqlを表示するにはsa権限が必要です
注意:dbcc sqltext()を実行する前にdbcc traceon(3604)を実行する必要があります.
set showplan on sql実行計画の表示
set statistics time on sql実行時間の表示
======================================================================
Oracleクエリデッドロックspid:

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 ;

権限を持ってこそkill spid