sqlserver如何避免并发select update 相同行
这张表每日新增数据200万条
然后 需要大量的 结算
我的做法
1.
每隔10秒 对比一次结果
select top 5000 id,Cath,C_Content,C_time,.... from Cath_HK where C_Result=0
update........
各种超时 (但这样不会出并发问题)
2. 出现并发数据重复问题 (当A没有执行完的时候,B也在执行的时候 就update两次 ,那么会员积分就不断的增加了)
A :select top 5000 id,Cath,C_Content,C_time,.... from Cath_HK where C_Result=0 and [userid]=64
B :select top 5000 id,Cath,C_Content,C_time,.... from Cath_HK where C_Result=0
update........
每个用户打开自己的页面 自动结算 外加定时全表扫描(效率上来了 ,但是 结算嗷嗷算重复)
PS,由于频发insert 没加索引
是不是 我给C_Result 加上索引 然后“在访问索引时使用行锁”“在访问索引时使用页锁” 就可以避免并发问题了?
数据量较大 不敢随意加索引 ! 望高手解答