Transcation And Lock--SQL SERVER 事务隔离级别
SQL SERVER 事务隔离级别:
1.未提交读(READ UNCOMMITED)
允许脏读,读取数据时不加共享锁,与使用WITH(NOLOCK)结果相同
2.已提交读
不允许脏读,读取数据时加共享锁,但在查询结束后立即释放共享锁,而不用等到事务结束
3.可重复读
不允许“不可重复读”,读取数据时加共享锁,将共享锁一直保持到事务结束,从而阻塞其他事务修改被读取的数据
4.快照
SQL SERVER 有两种行版本控制,在事务修改数据时,保留一份未修改前的数据副本,其他事务读取数据时访问副本数据,从而有效较少读和写的阻塞
a)已提交读快照隔离(READ_COMMITED_SNAPSHOT)
b)SNAPSHOT事务隔离级别
5.可序列化
事务读取时,除对读取数据加共享锁外,在索引或表上加范围共享锁,并将锁保持到事务结束,阻塞其他事务插入满足查询条件的记录,从而避免幻读。与使用SELECT