首页 新闻 会员 周边

asp.net并发导致表被死锁,求大神赐教解决方案!!

0
悬赏园豆:100 [待解决问题]

有100个用户 同时对A表做插入操作,插入过程中采用了事务,但是响应比较慢,然后A表就被锁住了。。。。跪求解决方案。。。。

zuohuiming的主页 zuohuiming | 初学一级 | 园豆:6
提问于:2013-12-05 09:16
< >
分享
所有回答(12)
0

如果能取消事务的话,取消试试。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-05 09:34

因为插入有多条记录,事务是不能取消的

支持(0) 反对(0) zuohuiming | 园豆:6 (初学一级) | 2013-12-05 09:37

@zuohuiming: 你优化一下代码, 看能不能使提高插入速度。

事务操作时要对表加锁的,多并发时肯定会慢的。

你有对多个表同时插入操作吗

 

支持(0) 反对(0) Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-05 09:47
0

采用队列。

@Sunth | 园豆:134 (初学一级) | 2013-12-05 10:14

请问有队列的相关资料吗?以前也听说过这个方案,或者麻烦说个大概的思路

支持(0) 反对(0) zuohuiming | 园豆:6 (初学一级) | 2013-12-05 10:17

@zuohuiming: msmq

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2013-12-06 08:06

@zuohuiming: PetShop 4.0 中就有个MSMQ使用的典型案例

支持(0) 反对(0) 阿土仔 | 园豆:171 (初学一级) | 2013-12-06 09:12
0

如果100个用户都操作自己一行的数据,那还需要用到事务吗?

chenping2008 | 园豆:9836 (大侠五级) | 2013-12-05 10:19
0

关键看你代码怎么写的,写放时是操作一个表的话不需要加事务的

苏飞 | 园豆:2024 (老鸟四级) | 2013-12-05 11:05
0

把多个关联放到数据库中做事务呢?

并参考http://www.cnblogs.com/xiaoxiaogogo/p/3464599.html

多个线程保证数据一致性。

刘志勇 | 园豆:261 (菜鸟二级) | 2013-12-05 11:30
0

代码写的不好,你把代码给个牛人,给你优化一下就好了。可以批量提交的,一次提交个几百个SQL语句都没问题的。

棋圣 | 园豆:197 (初学一级) | 2013-12-05 12:06
0

首先楼主要区分一下锁和死锁。这是两个概念。

 

这种情况通常会在程序中设计缓存层,然后在批量插入,或者按照业务范围进行插入。

CareySon | 园豆:247 (菜鸟二级) | 2013-12-05 12:28

宋大侠都出马了~~~

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2013-12-05 12:36
0

试一试

SqlBulkCopy批量复制数据

OracleBulkCopy批量复制数据

http://www.cnblogs.com/shikyoh/archive/2011/07/01/2095633.html

CICN | 园豆:188 (初学一级) | 2013-12-05 12:52
0

首先区分锁与死锁。查询DMV里面锁的状态是死锁还是锁等待。避免死锁无非就几个思路。 降低锁的粒度。 如何降低。有几个方案。

1.从需求考虑增加合适的索引,移除不必要的索引 

2.调整数据库事务隔离级别

3.启用快照隔离

4.使用行版本控制的已提交读

使用以上策略需要楼主考虑

1.最终用户是否接受行版本控制下的运行结果
2.SQL Server是否能支持行版本控制带来的额外负荷

sym_cn | 园豆:798 (小虾三级) | 2013-12-05 15:37

另外补充一点,如果是死锁。 那造成死锁的原因并不仅仅是这100个用户同时插入导致。 涉及到该表的查询修改删除。也会造成死锁。

支持(0) 反对(0) sym_cn | 园豆:798 (小虾三级) | 2013-12-05 15:39

如果数据允许脏读的话, 修改事务隔离级别为“未提交读”。 应该会有所改善。 

支持(0) 反对(0) sym_cn | 园豆:798 (小虾三级) | 2013-12-05 15:43
0

哈哈,说句大话,读写分离!

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-12-05 20:22
0

如果100个用户都操作自己一行的数据,那还需要用到事务吗?!!!!!!!!!!!111

自己的数据,怎么需要事务呢?

多半是因为你用的数据操作框架出了问题.

迅捷网络[来送福利] | 园豆:576 (小虾三级) | 2013-12-06 09:30
0

sql updlock

yesorno | 园豆:206 (菜鸟二级) | 2013-12-08 12:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册