lzth.net
当前位置:首页 >> 如何查看SQL SErvEr 2008的死锁 >>

如何查看SQL SErvEr 2008的死锁

在SQL Server 2008数据库中,查看死锁可以用存储过程来实现,本文我们主要就介绍了SQL Server 2008查看死锁的存储过程的代码示例,希望能够对您有所帮助.代码示例如下:if exists (select * from dbo.sysobjects where id = object_id(N'[

-- 查询死锁selectrequest_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName fromsys.dm_tran_locks whereresource_type='OBJECT' --杀死死锁进程kill 354 创造死锁条件开两个查询窗口BEGIN TRANSACTION--开始事务update job set creator='00000' where id='001'WAITFOR DELAY '02:00'; select * from job where id='001'

为了查看死锁信息,数据库引擎提供了监视工具,分别为两个跟踪标志以及 sql server profiler中的死锁图形事件.跟踪标志 1204 和跟踪标志 1222 发生死锁时,跟踪标志 1204 和跟踪标志 1222 会返回在 sql server 错误日志中捕获的信息.跟踪

使用SQL Server Profiler,新建跟踪-连接数据库-事件选择页签,“显示所有事件”那里打勾,然后展开“Locks”,第一行就是死锁图.把这一行勾上,点击“运行”.当数据库中出现死锁时,就能看到死锁图了.

死锁检测 use master Select * from sysprocesses where blocked<>0 --找到SPID exec sp_lock --根据SPID找到OBJID select object_name(85575343) --根据OBJID找到表名 sqlserver的数据库文件是什么?以 .MDF结尾的是数据库文件,以 .LDF结尾的是日志文件 ; 在企业管理器中选择您的要导入数据的数据库,然后点击右键,选择所有任务-附加数据库-选择MDF文件,就可以了 ; 对于数据库的还原,最好的备份数据库后,再还原数据库.可以使用定期备份;

--查询出死锁的spidselect blockedfrom (select * from sysprocesses where blocked>0 ) a where not exists(select * from (select * from sysprocesses where blocked>0 ) b where a.blocked=spid)

我们知道,可以使用SQL Server自带的Profiler工具来跟踪死锁信息.但这种方式有一个很大的敝端,就是消耗很大.据国外某大神测试,profiler甚至可以占到服 务器总带宽的35%,所以,在一个繁忙的系统中,使用profiler显然不是一个好主意

usemaster--必须在master数据库中创建 go ifexists (select*fromdbo. [p_lockinfo] GO /*--处理死锁 查看当前进程,或死锁进程,并能自动杀掉死进程 因为是针对死的,所

转:具体步骤如下:1.首先使用下面的命令,将有关的跟踪标志启用.SQL codeDBCC TRACEON (3605,1204,1222,-1) 说明:3605 将DBCC的结果输出到错误日志.1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令.1222 返回参

具体步骤如下:1.首先使用下面的命令,将有关的跟踪标志启用.SQL codeDBCC TRACEON (3605,1204,1222,-1) 说明:3605 将DBCC的结果输出到错误日志.1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令.1222 返回参与死

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com