并发、事务和锁
并发、事务和锁 并发,在操作系统中,是指一个很短的时间段中有几个程序都处于已启动运行到运行完毕之间,并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争同一资源,如处理机、缓冲区、数据等。在数据库系统中,并发主要是指资源的争用,当两个进程同时在访问或更新同一个数据时,产生资源的争用,资源争用会引起一系列的问题,比如数据不一致、查询阻塞、死锁等。 一,并发模式 在数据库系统中,当多个进程访问同一资源时,默认情况下,SQL Server会通过各种类型的锁来协调资源的访问,确保在并发环境下数据保持一致的状态。而锁的作用范围是在事务中,事务建立在并发模式下。并发模式控制当发生读写冲突时,数据应该如何处理以保证数据的一致性。注意,写和写之间永远冲突。 1,乐观并发模式 对于乐观并发模式,SQL Server假设只有少量的冲突发生,默认的机制是使用快照技术,在写进程完成修改数据之前,先把数据的行版本保存到tempdb中。由于数据的旧数据已经保存,读进程可以直接读取已经保存的行版本,而不会受到写进程的影响。 乐观并发使得读写进程不会相互阻塞,但是,这会导致一个潜在的问题,读进程可能会读取到老的数据。 2,悲观并发模式 这是默认的并发模式,在悲观并发模式下,SQL Server认为有大量的写操作发生,并且写操作会受到写操作的影响。也就是说