社区
疑难问题
帖子详情
求救! SQLSERVER死锁,崩溃了. 在线等!
luozhangwen
2012-10-15 04:41:56
并发操作, 并发量大概在5个左右, 每个并发量的数据量在5000左右, 500一次存储
同个事务操作是先删除, 后插入, 不知道为什么会死锁, 把并发给弄成串行就不死锁了, 但是串行太慢了~
各位大大帮帮忙啊, 非常感谢!
...全文
305
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语句
C++笔试题目大全
1 c++ c++ c++ c++ 笔试题汇总 ① 链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是 这 样的: 1->2->3->4->5 通过反转后成为 5->4->3->2->1 。 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个 元 素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍
[Oracle] ORA-03113错误分析与解决
前言每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-1547 ,ORA-904,ORA-1578 ......)。有些错误由于频繁出现、原因复杂而被 Oracle DBA 们戏称之为"经典的错误"。其...
WEB开发文档2 总结
http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx 怎样将后台生成的在内存中的图象显示到客户端 Microsoft IE WebControls下载地址 如何在DATAGRID中使用JAVASCRIPT脚本控制 DataGrid中连接到下一页显示数据 下载中文名
CSDN 数据技巧
取 Access640-605 Remote Access 2.0 考试大纲Access Violations(访问冲突)ACCESS97关于数据库安全的几个问题AccesS密码的打击Access数据库操作中出现的怪现象Access数据库导入Mysql的方法之一ACCESS数据库防止下载大盘点ACCESS数据库向MySQL快速迁移小程序(二)ACCESS数据库向MySQL快速迁移小程序(一)A
疑难问题
22,300
社区成员
121,734
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章