以下的文章主要向大家讲述的是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 死锁检测和结束死锁的介绍,望你能有所收获。
有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...
打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...
国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...
假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...
1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...