当前位置:首页 > 系统运维 > 正文内容

SQL Server死锁检测与SQL Server结束死锁概述

a8116255316年前 (2010-07-07)系统运维8

此文章主要介绍的是SQL Server死锁检测与SQL Server结束死锁,我们大家都知道在 Microsoft® SQL Server™ 2000 数据库中,单个用户会话可能有一个或多个代表它运行的线程。每个线程可能获取或等待获取各种资源,如:

锁。

与并行查询执行相关的资源(与交换端口相关联的处理协调器、发生器和使用者线程)。

线程。

内存。

上述这些资源除内存外都参与 SQL Server死锁检测方案。对于内存,SQL Server 使用基于超时的机制,该机制由 sp_configure 中的 query wait 选项控制。

在 SQL Server 2000 中,死锁检测由一个称为锁监视器线程的单独的线程执行。在出现下列任一情况时,锁监视器线程对特定线程启动死锁搜索:

线程已经为同一资源等待了一段指定的时间。锁监视器线程定期醒来并识别所有等待某个资源的线程。假如锁监视器再次醒来时这些线程仍在等待同一资源,则它将对等待线程启动锁搜索。

线程等待资源并启动急切的死锁搜索。

SQL Server 通常只执行定期SQL Server死锁检测,而不使用急切模式。因为系统中遇到的死锁数通常很少,定期SQL Server死锁检测有助于减少系统中死锁检测的开销。

当锁监视器对特定线程启动死锁检测时,它识别线程正在等待的资源。然后,锁监视器查找特定资源的拥有者,并递归地继续执行对那些线程的死锁搜索,直到找到一个循环。用这种方式识别的循环形成一个死锁。

在识别死锁后,SQL Server 通过自动选择可以打破死锁的线程(死锁牺牲品)来结束死锁。SQL Server 回滚作为死锁牺牲品的事务,通知线程的应用程序(通过返回 1205 号错误信息),取消线程的当前请求,然后允许不间断线程的事务继续进行。

SQL Server 通常选择运行撤消时花费最少的事务的线程作为死锁牺牲品。另外,用户可以使用 SET 语句将会话的 DEADLOCK_PRIORITY 设置为 LOW。DEADLOCK_PRIORITY 选项控制在死锁情况下如何衡量会话的重要性。假如会话的设置为 LOW ,则当会话陷入死锁情况时将成为首选牺牲品。

识别死锁:识别死锁后,SQL Server 选择特定的线程作为死锁牺牲品,并返回一条列出死锁中涉及的资源的错误信息。该死锁信息采用下列形式:

Your transaction (process ID #52) was deadlocked>死锁中涉及的线程和资源位于错误日志中。

以上的相关内容就是对SQL Server死锁检测和结束死锁的介绍,望你能有所收获。 

上述的相关内容就是对SQL Server死锁检测和结束死锁的描述,希望会给你带来一些帮助在此方面。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/21573.html

分享给朋友:

“SQL Server死锁检测与SQL Server结束死锁概述” 的相关文章

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...

windows 7系统开机后出现黑屏提示Windows无法启动

windows 7系统开机后出现黑屏提示Windows无法启动

一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

windows 7系统怎么取消禁ping命令?

windows 7系统怎么取消禁ping命令?

当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Windows 7默认在防火墙里禁止了。 1、查看主机ip 打开“开始”程序中的“附件”,找到“命令提示符”打开。输入命令:ipconfig,可以看到本机的ip是192.1...

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...