此文章主要介绍的是在SQL Server 2000数据库中正确的检测与结束死锁的实际操作步骤,在 microsoft® SQL Server™ 2000数据库中,单个用户会话都会有一个或多个代表它运行的线程。每个线程可能获取或等待获取各种资源,如:
锁。
与并行查询执行相关的资源(与交换端口相关联的处理协调器、发生器和使用者线程)。
线程。
内存。
上述这些资源除内存外都参与 SQL Server 死锁检测方案。对于内存,SQL Server 使用基于超时的机制,该机制由 sp_configure 中的 query wAIt 选项控制。
在 SQL Server 2000 中,死锁检测由一个称为锁监视器线程的单独的线程执行。在出现下列任一情况时,锁监视器线程对特定线程启动死锁搜索:
线程已经为同一资源等待了一段指定的时间。锁监视器线程定期醒来并识别所有等待某个资源的线程。假如锁监视器再次醒来时这些线程仍在等待同一资源,则它将对等待线程启动锁搜索。
线程等待资源并启动急切的死锁搜索。
SQL Server 通常只执行定期死锁检测,而不使用急切模式。因为系统中遇到的死锁数通常很少,定期死锁检测有助于减少系统中死锁检测的开销。
当锁监视器对特定线程启动死锁检测时,它识别线程正在等待的资源。然后,锁监视器查找特定资源的拥有者,并递归地继续执行对那些线程的死锁搜索,直到找到一个循环。用这种方式识别的循环形成一个死锁。
在识别死锁后,SQL Server 通过自动选择可以打破死锁的线程(死锁牺牲品)来结束死锁。SQL Server 回滚作为死锁牺牲品的事务,通知线程的应用程序(通过返回 1205 号错误信息),取消线程的当前请求,然后允许不间断线程的事务继续进行。
SQL Server 通常选择运行撤消时花费最少的事务的线程作为死锁牺牲品。另外,用户可以使用 SET 语句将会话的 DEADLOCK_PRIORITY 设置为 LOW。DEADLOCK_PRIORITY 选项控制在死锁情况下如何衡量会话的重要性。假如会话的设置为 LOW ,则当会话陷入死锁情况时将成为首选牺牲品。
上述的相关内容就是对在SQL Server 2000数据库中检测和结束死锁的描述,希望会给你带来一些帮助在此方面。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...
问题现象,具体如下所示: 故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。 解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...
问:我在Windows 7 Ultimate X64下播放电影视频时,不管什么格式都会蓝屏,错误代码“0x00000124”。换解码器、播放器不行,换驱动、内存也不管用。在不同的电脑上也试过,仍然蓝屏。请问是哪里的问题,如何解决 答:64位 Windows 7直接使用PotPlayer x64就...
经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...
1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...
每一位用户的Windows 7系统上,或多或少都会有一到两个自己常用的文件夹,那么如何将这些常用的文件夹添加到任务栏上,增加我们的工作效率呢 许多用户只知道移动exe程序文件到任务栏,却不知道文件夹怎么移,下面小编通过图文教程来告诉大家方法。 操作方法: 1、首先将你使用频率最高的那个文件夹重命...