查询死锁进程的方法:
一条SQL2005里查询进程信息的SQL语句
虽然简单,估计大家都能写出来,不过比较实用,返回的信息包括进程阻塞信息、登录的相关信息、执行的SQL语句信息、进程所消耗的CPU、内存、I/O信息、以及客户端IP信息,具体如下:
with tb
as
(
select blocking_session_id,
session_id,db_name(database_id) as dbname,text from master.sys.dm_exec_requests a
CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle)
),
tb1 as
(
select a.*,login_time,program_name,client_interface_name,login_name,cpu_time,memory_usage*8 as 'memory_usage(KB)',
total_scheduled_time,reads,writes,logical_reads
from tb a inner join master.sys.dm_exec_sessions b
on a.session_id=b.session_id
)
select a.*,connect_time,client_tcp_port,client_net_address
from tb1 a inner join master.sys.dm_exec_connections b on a.session_id=b.session_id
go
use master
go
select a.spid, a.blocked
from sysprocesses a, sysprocesses b
where a.blocked > 0 and
b.blocked > 0 and
a.spid != b.spid and
a.blocked = b.spid and
b.blocked = a.spid
go
一条SQL2005里查询进程信息的SQL语句
虽然简单,估计大家都能写出来,不过比较实用,返回的信息包括进程阻塞信息、登录的相关信息、执行的SQL语句信息、进程所消耗的CPU、内存、I/O信息、以及客户端IP信息,具体如下:
with tb
as
(
select blocking_session_id,
session_id,db_name(database_id) as dbname,text from master.sys.dm_exec_requests a
CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle)
),
tb1 as
(
select a.*,login_time,program_name,client_interface_name,login_name,cpu_time,memory_usage*8 as 'memory_usage(KB)',
total_scheduled_time,reads,writes,logical_reads
from tb a inner join master.sys.dm_exec_sessions b
on a.session_id=b.session_id
)
select a.*,connect_time,client_tcp_port,client_net_address
from tb1 a inner join master.sys.dm_exec_connections b on a.session_id=b.session_id
go
use master
go
select a.spid, a.blocked
from sysprocesses a, sysprocesses b
where a.blocked > 0 and
b.blocked > 0 and
a.spid != b.spid and
a.blocked = b.spid and
b.blocked = a.spid
go