/*--调用示例 SQLServer查询死锁语句 exec p_lockinfo --*/ create proc p_lockinfo @kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示 @show_spid_if_nolock bit=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示 as declare @count int,@s nvarchar(1000),@i int select id=identity(int,1,1),标志, 进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid, 数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu, 登陆时间=login_time,打开事务数=open_tran, 进程状态=status, 工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess, 域名=nt_domain,网卡地址=net_address into #t from( select 标志='死锁的进程', spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostprocess,nt_domain,net_address, s1=a.spid,s2=0 from master..sysprocesses a join ( select blocked from master..sysprocesses group by blocked )b on a.spid=b.blocked where a.blocked=0 union all select '|_牺牲品_>', spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostprocess,nt_domain,net_address, s1=blocked,s2=1 from master..sysprocesses a where blocked<>0 )a order by s1,s2 select @count=@@rowcount,@i=1 if @count=0 and @show_spid_if_nolock=1 begin insert #t select 标志='正常的进程', spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time, open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address from master..sysprocesses set @count=@@rowcount end if @count>0 begin create table #t1(id int identity(1,1),a nvarchar(30),b Int,EventInfo nvarchar(255)) if @kill_lock_spid=1 begin declare @spid varchar(10),@标志 varchar(10) while @i<=@count begin select @spid=进程ID,@标志=标志 from #t where id=@i insert #t1 exec('dbcc inputbuffer('+@spid+')') if @标志='死锁的进程' exec('kill '+@spid) set @i=@i+1 end end else while @i<=@count begin select @s='dbcc inputbuffer('+cast(进程ID as varchar)+')' from #t where id=@i insert #t1 exec(@s) set @i=@i+1 end select a.*,进程的SQL语句=b.EventInfo from #t a join #t1 b on a.id=b.id end go
--查询SP
/*--处理死锁
查看当前进程,或死锁进程,并能自动杀掉死进程
因为是针对死的,所以如果有死锁进程,只能查看死锁进程
当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程
*/
Exec p_lockinfo 0,1
其它语句:
--sql server 查询哪条语句引起的锁表 select * from sys.dm_tran_locks Exec sp_LOCK sp_who2 pid(2) dbcc inputbuffer(52)
sql server性能分析--查询死锁的sql语句
--查询死锁和阻塞的sql语句
SELECT CAST(REPLACE(REPLACE(XEventData.XEvent.value('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM ( SELECT CAST(target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE [name] = 'system_health' ) AS Data CROSS APPLY TargetData.nodes('//RingBufferTarget/event') AS XEventData ( XEvent ) WHERE XEventData.XEvent.value('@name', 'varchar(8000)') = 'xml_deadlock_report' ;
SQL Server 性能分析
数据库系统异常排查之DMV(转)
posted @ 2012-03-16 17:23 zping 阅读(35) | 评论 (0) 编辑
处理“远程主机强迫关闭了一个现有的连接”
posted @ 2011-12-05 16:29 zping 阅读(176) | 评论 (0) 编辑
批量导出表索引
posted @ 2011-11-11 16:03 zping 阅读(94) | 评论 (0) 编辑
SQL Server 监控锁定信息
posted @ 2011-10-12 14:27 zping 阅读(106) | 评论 (0) 编辑
查询表的使用空间和可用空间
posted @ 2011-07-06 16:38 zping 阅读(141) | 评论 (0) 编辑
查询长事务和SQL执行等待间隔时间
posted @ 2011-03-31 15:37 zping 阅读(221) | 评论 (0) 编辑
查询SQL Server存储过程的执行信息
posted @ 2011-02-24 17:48 zping 阅读(200) | 评论 (0) 编辑
SQL Server 查询Job中的存储过程
posted @ 2011-01-28 11:20 zping 阅读(254) | 评论 (0) 编辑
使用SQL Server动态管理视图确认缺失索引(转)
posted @ 2011-01-27 15:13 zping 阅读(159) | 评论 (0) 编辑
sql server 清理日志存储过程
posted @ 2011-01-25 09:33 zping 阅读(134) | 评论 (0) 编辑
sql 表分区信息查看
posted @ 2011-01-12 14:02 zping 阅读(140) | 评论 (0) 编辑
统计用户表中表行数,行平均长度,总页数
posted @ 2011-01-12 09:52 zping 阅读(174) | 评论 (0) 编辑
sql server性能分析--查看表数据页数
posted @ 2010-12-20 14:47 zping 阅读(183) | 评论 (0) 编辑
检查SQL Server 2005的索引密度和碎片信息(转)
posted @ 2009-09-24 13:45 zping 阅读(451) | 评论 (0) 编辑
SQL Server 查看数据库基本信息
posted @ 2008-09-17 16:32 zping 阅读(616) | 评论 (0) 编辑
sql server性能分析--定时收集系统运行情况
posted @ 2008-09-12 14:33 zping 阅读(579) | 评论 (0) 编辑
sql server性能分析--执行sql次数和逻辑次数
posted @ 2008-07-15 13:47 zping 阅读(1786) | 评论 (4) 编辑
sql server性能分析--执行计划重用次数
posted @ 2008-07-15 13:46 zping 阅读(704) | 评论 (0) 编辑
sql server性能分析--索引使用效率评估
posted @ 2008-07-15 13:45 zping 阅读(617) | 评论 (0) 编辑
sql server性能分析--检测数据库阻塞语句
posted @ 2008-06-01 14:58 zping 阅读(967) | 评论 (2) 编辑