C#/.net/sql高手进!什么情况下需要注意和处理数据库的并发性?
答案:4 悬赏:40 手机版
解决时间 2021-11-19 02:09
- 提问者网友:人傍凄凉立暮秋
- 2021-11-18 14:07
C#/.net/sql高手进!什么情况下需要注意和处理数据库的并发性?
最佳答案
- 五星知识达人网友:夜余生
- 2021-11-18 14:12
在并发高的情况下。
你要考虑事务了。
如果不启用事务的话,没办法保证数据的一致性。
默认数据是不启用事务操作的。
如果你不启用事务来控制你的数据更新就有可能出现
数据不对称的现象。
尤其是大并发下这样的问题极其可能发生。追问这个还有点靠谱,你的意思就是说加锁什么的是不是和事务紧密联系的?
如果不用事务是否就谈不上加锁?追答是的。
.net如果我没有记错的话。
支持2种事务。
一种是针对你的.net程序进程,、
另一种就是针对数据这块。
如果你的数据严谨性要求高,你可以可以选择数据库这块的。
针对事务锁这块有不同的锁情况。
你可以按照你的实际需求来调整。
你要考虑事务了。
如果不启用事务的话,没办法保证数据的一致性。
默认数据是不启用事务操作的。
如果你不启用事务来控制你的数据更新就有可能出现
数据不对称的现象。
尤其是大并发下这样的问题极其可能发生。追问这个还有点靠谱,你的意思就是说加锁什么的是不是和事务紧密联系的?
如果不用事务是否就谈不上加锁?追答是的。
.net如果我没有记错的话。
支持2种事务。
一种是针对你的.net程序进程,、
另一种就是针对数据这块。
如果你的数据严谨性要求高,你可以可以选择数据库这块的。
针对事务锁这块有不同的锁情况。
你可以按照你的实际需求来调整。
全部回答
- 1楼网友:持酒劝斜阳
- 2021-11-18 16:32
最简单的例子:就是你拿着的东西被别人偷偷拿走了,而你却不知道。
1、甲查询A表的数据
2、乙删除A表的数据
3、甲查和乙删同时进行的时候,数据会出现怎样的结果呢?追问怎么可能是同时?命令达到sqlserver的时间肯定有先后!再说了,先不说我们的程序,就说sqlserver,在两个客户端同时查和删会出现奔溃的现象么?大不了就查不出数据,刷新就ok了。追答是的,但是你想的太简单了。你只想到这一点,数据的遗漏、丢失、或缺等等情况都是会出现的,既然如此是不是跟你预期的结果不一致了呢?刷新就OK了,用户会知道这个还要再刷新一次么?这个时候你用上并发性的处理是不是就更好了呢?追问既然出错用户那边就会报错,报错了重试就行了,算了,已经采纳不浪费你的时间了。追答你觉得给用户报错这样的体验合适么?报错页面在用户的世界里面作为一个优秀的程序员是不允许出现的。还需要用户重试?这样的用户体验只能减少用户流量!追问按照你的意思,如果两个客户端同时在火车票只有1张的时候查询到了,同时买,然后都买到了就叫做用户体验好,然后第二人没买到就体验不好了?那谁还吐槽铁道部啊?并发的锁能解决这个问题?追答只能为你的智商表示遗憾!
处理并发性最常用的手段是使用事务,C#或sql中都可以处理!
当你使用并发性后,第一个人能买到,而另一个人不能买到了。
不能买到的人会收到友好的提示,而不是报错!
亲爱的楼主,你还懂?追问就事论事你怎么还来人身攻击了,对你的人品也感到怀疑!追答你在就事论事的同时,我也在就事论事。
若你能理解甚好,否则只能遗憾了。追问还是谢了!
1、甲查询A表的数据
2、乙删除A表的数据
3、甲查和乙删同时进行的时候,数据会出现怎样的结果呢?追问怎么可能是同时?命令达到sqlserver的时间肯定有先后!再说了,先不说我们的程序,就说sqlserver,在两个客户端同时查和删会出现奔溃的现象么?大不了就查不出数据,刷新就ok了。追答是的,但是你想的太简单了。你只想到这一点,数据的遗漏、丢失、或缺等等情况都是会出现的,既然如此是不是跟你预期的结果不一致了呢?刷新就OK了,用户会知道这个还要再刷新一次么?这个时候你用上并发性的处理是不是就更好了呢?追问既然出错用户那边就会报错,报错了重试就行了,算了,已经采纳不浪费你的时间了。追答你觉得给用户报错这样的体验合适么?报错页面在用户的世界里面作为一个优秀的程序员是不允许出现的。还需要用户重试?这样的用户体验只能减少用户流量!追问按照你的意思,如果两个客户端同时在火车票只有1张的时候查询到了,同时买,然后都买到了就叫做用户体验好,然后第二人没买到就体验不好了?那谁还吐槽铁道部啊?并发的锁能解决这个问题?追答只能为你的智商表示遗憾!
处理并发性最常用的手段是使用事务,C#或sql中都可以处理!
当你使用并发性后,第一个人能买到,而另一个人不能买到了。
不能买到的人会收到友好的提示,而不是报错!
亲爱的楼主,你还懂?追问就事论事你怎么还来人身攻击了,对你的人品也感到怀疑!追答你在就事论事的同时,我也在就事论事。
若你能理解甚好,否则只能遗憾了。追问还是谢了!
- 2楼网友:酒醒三更
- 2021-11-18 15:40
给你举个例子,如果a用户打开connection连接,然后进行操作,等操作完成后,关闭连接,在a操作的过程中,b用户也进行了操作,但是没有完事,那么b用户就会受到影响。追问受到什么影响?难道说sqlserver没有处理这种问题?最多就是在b那边报个错吧,b重新操作就行了。会有其他什么影响?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯