sql server怎么排查死锁优化性能


本篇内容主要讲解“sqlserver怎么排查死锁优化性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlserver怎么排查死锁优化性能”吧!记得以前客户在使用软件时,有偶发出现死锁问题,因为发生的时间不确定,不好做问题的重现,当时解决问免费云主机域名题有点棘手了。现总结下查看死锁的常用二种方式。sqlserver –>工具–> sql server profiler 登录后在跟踪属性中选择如下图:监听到的死锁图形如下图这里的描述大致是:有二个进程 一个进程ID是96, 另一个ID是348. 系统自动kill 掉了进程ID:96,保留了进程ID:348 的事务Commit。上面死锁是由于批量更新出现PAG范围锁, 双方进程在同一分区索引资源上。ID96,348都请求想获取更新锁(U),各占排它锁(x)不释放,直到锁超时。以全局方式打开指定的跟踪标记使用 EXEC master..xp_readerrorlog 查看日志。PAGE 7:1:6229275(所在数据库ID 7, 1分区, 6229275行数)Mode: IX 锁的模式 意向排它锁SPID: 219 进程IDEvent: exec proc_PUB_StockDataImport 执行的存储过程名PAGE 7:1:5692366 (所在数据库ID 7, 1分区,5692366行数)Mode:U锁的模式 更新锁RPC Event: Proc 远程调用SPID: 64 进程ID从上面的信息能看到kill 掉的是进程id是process956f4c8,进程spid=64lockMode=U 获取更新锁isolationlevel=read committedexecutionStack 执行的堆信息:存储名 procname=Test.dbo.proc_CnofStock语句 update dbo.pub_stock set UpdateTime=GETDATE() ..clientapp 发起事件的来源按同一顺序访问对象。优化索引,避免全表扫描,减少锁的申请数目.避免事务中的用户交互。使用基于行版本控制的隔离级别。将事务默认隔离级别的已提交读改成快照SET TRANSACTION ISOLATION LEVEL SNAPSHOT使用nolock去掉共享锁,但死锁发生在u锁或x锁上,则nolock不起作用升级锁颗粒度(页锁,表锁), 以阻塞还代替死锁到此,相信大家对“sqlserver怎么排查死锁优化性能”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Nodejs如何卸载

这篇文章主要讲解了“Nodejs如何卸载”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nodejs如何卸载”吧!1、打开系统的控制面板,点击卸载程序,卸载nodejs2、删除node的安装目录默认是C:Prog…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/12 15:45
下一篇 04/12 15:45

相关推荐