摘要:
1.并发操作不一定会产生并发问题,同时执行select * 的操作也是并发操作,但不会产生并发问题。 并发问题包括: 1.丢失或覆盖更新。(幻像读) 2.未确认的相关性(脏读)。 3.不一致的分析(不可重复读)。 丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题、 每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。 ... 阅读全文
摘要:
我在博客堂上也看到不少有关并发控制的文章,我一直是推荐使用时间戳来解决的。 比如我们在SQL Server中的表中定义一个字段为timestamp类型的字段ts,这个字段的值不需要我们进行控制的。 在Insert与Update时,数据库会自己进行ts值的更新,因此我们只要在Update时使用: Update xxx where key=@key and ts=@ts 就可以了,根本不用考虑ts里的... 阅读全文