社区
疑难问题
帖子详情
求救! SQLSERVER死锁,崩溃了. 在线等!
luozhangwen
2012-10-15 04:41:56
并发操作, 并发量大概在5个左右, 每个并发量的数据量在5000左右, 500一次存储
同个事务操作是先删除, 后插入, 不知道为什么会死锁, 把并发给弄成串行就不死锁了, 但是串行太慢了~
各位大大帮帮忙啊, 非常感谢!
...全文
311
10
打赏
收藏
求救! SQLSERVER死锁,崩溃了. 在线等!
并发操作, 并发量大概在5个左右, 每个并发量的数据量在5000左右, 500一次存储 同个事务操作是先删除, 后插入, 不知道为什么会死锁, 把并发给弄成串行就不死锁了, 但是串行太慢了~ 各位大大帮帮忙啊, 非常感谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangdong441325
2012-10-18
打赏
举报
回复
我也想用数据库锁
ycwhhr
2012-10-16
打赏
举报
回复
表相互间的关系,逆向处理时子先主后,正常存储时主先子后。
以学习为目的
2012-10-16
打赏
举报
回复
楼上几位讲的你综合排查下你的故障,看看能不能解决你的问题
gogodiy
2012-10-16
打赏
举报
回复
使用SQL Server Profiler工具,选择Locks事件类的Lock:Deadlock(死锁)和Lock:Deadlock Chain(死锁链),然后跟踪看下你这5个并发,看看锁对应的SPID以及相关的先后顺序、发生时间等等,再进行判断。
对于代码,你可以将先删除,后插入放在一个事务中,然后写入存储过程。并发用户只调用这个存储过程,让MSSQL自己去根据数据库设置的事务等级自己去处理。
最后你要确实到底是死锁了,还是阻塞,还是正常的锁等待,这是完全不同的3个概念。
qurihong
2012-10-16
打赏
举报
回复
“先删除, 后插入”,删除时需要先scan找到这笔资料,问题就出在这里,“交叉的检索和插入”导致死锁,最简单的办法就是修改sql server的默认隔离级别read committed为read uncommitted
如果觉得不放心,可以考虑使用SNAPSHOT_ISOLATION
sqlfun
2012-10-15
打赏
举报
回复
1、机器未崩溃之前,人不能先崩溃
2、死锁其实没那么复杂,无非是A请求B时,需要顺序使用锁1和锁2;B请求A时,需要顺序使用锁2和锁1,谁也不让谁,结果就死锁了。
3、找死锁的方法建议使用profiler,找到根源就更容易解决问题了。
http://www.simple-talk.com/sql/learn-sql-server/how-to-track-down-deadlocks-using-sql-server-2005-profiler/
4、good luck
汤姆克鲁斯
2012-10-15
打赏
举报
回复
频率有多高啊?
是死锁还是阻塞?
大力水手
2012-10-15
打赏
举报
回复
我感觉你还是把语句贴出来,你的5个的意识也不太清楚什么意识..5个事务吗! 正常的锁等待不叫死锁.
發糞塗牆
2012-10-15
打赏
举报
回复
http://topic.csdn.net/u/20120504/14/f17df33b-e678-40f0-a7e9-64224a091c70.html
看看这些有没有帮助
發糞塗牆
2012-10-15
打赏
举报
回复
死锁这个范畴很大,你需要先找出哪个语句导致的。其实根源还是太慢了,并且占用资源太多,使得其他事务要等待,给你几个改进建议:
1、如果表很大,使用2005以后的分区表,这样扫描的范围小很多。
2、改进索引,往往索引不好,会导致i/O很大、速度慢。好的索引可以把一个大查询秒杀,这样就算占用稍微大一点的资源很快释放了。其他事务也不用等待太久。
3、由于你一个事务中用到了另外一个真在等待的事务,所以导致了死锁,这点尽量能分开操作就分开操作。把速度提高的时候,可以使用with nolock来减少锁的占用。
MS-SQL Server 基础类 - SQL语句
请问一下在
SQLSERVER
中把一个表的一个字段的值附加到另一个表这种情况怎样解决? 请问SQL中对表的名称的限制 数据的读取问题: 存储过程中如何将一个变量作为表格的名字 简单的问题:几个连接的区别。FROM/WHERE、 ...
C++笔试题目大全
1 c++ c++ c++ c++ 笔试题汇总 ① 链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是 这 样的: 1->2->3->4->5 通过反转后成为 5->4->3->2->1 。...
[Oracle] ORA-03113错误分析与解决
在连接过程中,如果Oracle数据库的服务器
崩溃
或者数据库所在的操作系统
崩溃
,就会出现这 个错误,Oracle Server
崩溃
的原因可能因为主要后台进程死掉,被错误的进行了Kill操作。如果是这个原因还是比较容易解决的。...
WEB开发文档2 总结
在线
等 调试sharepoint web part时, 如何可以多个人同时启动调试? WEB页面多语言支持解决方案---回报CSDN各位朋友 关于改变IIS时间格式问题(请各位高手入内!)? 隐藏URL参数 在c#中...
CSDN 数据技巧
SQLServer
和Access、Excel数据传输简单总结 Text 转换为 Access MDB Ultradev实例教程:2.1 建立一个简单的access数据库 VC中利用ATL OLE DB类开发Access数据库的技巧 Working with MS Access Stored Procedures in ...
疑难问题
22,299
社区成员
121,733
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章