当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-01-25 23:11:00  来源:本站整理

<b>sql server死锁的检测办法</b>[MSSQL防范]

赞助商链接



  本文“<b>sql server死锁的检测办法</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

sql server死锁是在sql server数据库中常常发生的情形,下面就将对sql server死锁举行深化的解读,供您参考.

死锁(deadlock)指进程之间彼此永久阻塞的状况,SQL可以检测到死锁,并挑选终止此中一个事件以干涉sql server死锁状况.两个进程发生sql server死锁的典型例子是:进程T1中获得锁A,申请锁B;进程T2中获得锁B,申请锁A,我们下面着手来演示一下这种情形:

1. 成立一个Database,名为InvDB.

2. 履行下面脚本成立person表并填充两条数据:

sql server死锁的检测办法

3. 在SQL Server Management Studio的两个窗口中同时履行下面的查询:

sql server死锁的检测办法sql server死锁的检测办法

这段代码在默许的READ COMMITTED断绝级别下运行,两个进程辨别在获得一个排它锁的情形下,申请对方的同享锁从而造成死锁.

可见一个进程可以正常更新并显示后果,而另一个进程已经被回滚:

(1 row(s) affected)
Msg 1205, Level 13, State 45, Line 8
Transaction (Process ID 55) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

4. 启动 SQL Server Profiler,挑选下面4种Events:

sql server死锁的检测办法

再履行一次上面的死锁实行,可以看到以下所示的死锁图:

sql server死锁的检测办法

非常风趣的一点是:第二次履行上述语句不会发死活锁!这是因为此时两个进程中,SQL Server会智能的辨认出update语句是不需求做的,所以都不会去获得排它锁,当然也就不会死锁了.SQL Server 2008 的查询优化器还真是非常强盛!

<
  以上是“<b>sql server死锁的检测办法</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .