视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQLServer的事务操作隔离模式介绍
2020-11-09 07:04:18 责编:小采
文档


一般而言,最好让SQL Server以默认形式在隔离事务操作;毕竟,隔离是ACID模型的基本原则之一。但是,有时候因为业务需求的原因,数据库管理员不得不违背默认行为,而 是采取更灵活一点的方法来进行事务操作隔离。针对数据库管理员遇到的这类情况,SQL Serve提供了五种不同的事务操作隔离模式。在详细介绍这些事务操作隔离模式之前,必需先了管理员会遇到的数据库问题:

  1.脏数据读写,这种情况发生在当一个事务读写由另一个事务修改而未提交的数据的时候。如果另一个事物永远都不提交其修改数据,那么第一个事务就永远都得到一个无效的值,即脏数据。

  2.不可重复读写,这种情况发生在当一个事务在试图重复读取同一数据,而另一个事务在这第一个事务重复读取之前修改了此数据的时候。这样会使第一个事务在读取同一数据时获得两个不同的值,导致原始数据读取变成不可重复。

  3.影象读写,这种情况发生在当一个事务在某一个表格中进行多次数据查询,而另一个事务插入或者删除满足查询条件的数据行。这会造成前一个事务获得或失去一个“影象”值。

  SQL Server的每一种隔离模式都试图解决以上问题中的部分,使数据库管理员能够保持事务操作隔离和业务需求之间的平衡。以下是SQL Server的五种隔离模式:

  1.读写提交隔离模式,这是SQL Server默认的隔离模式,数据库不允许事务操作读写由未提交的事务操作写的数据。这个模式可以防止产生脏数据读写,但是不能防止影象读写或不可重复读写的情况。

  2.读写未提交隔离模式,这种模式基本在事务操作之间没有进行隔离。任何事务都可以读写由另一个未提交的事务写的数据。这种模式下,事务操作很容易出现脏数据读写、影象读写和不可重复读写的情况。

  3.可重复读写隔离模式,比读写提交隔离模式更进一步,能够阻止事务修改正被另一个事务读写的数据,直到读写操作结束。这个隔离模式可以防止脏数据读写和不可重复读写的情况发生。

  4.串行化隔离模式,这个模式运用范围锁防止一个事务在另一个事务对数据进行读取时插入或者删除数据行。串行化隔离模式能够防止上述三种情况的发生。

  5.快照隔离模式,这个模式同样可以防止三种情况的发生,只是方法不同。它为每一个事务提供其查询数据的“快照”,事务可以查询快照,无需返回到源数据表格,从而防止产生脏数据读取。

  如果想要改变SQL Server使用的隔离模式,只需要输入以下命令:

   代码如下:SET TRANSACTION ISOLATION LEVEL

  可以用以下关键词代替:

  · READ COMMITTED

  · READ UNCOMMITTED

  · REPEATABLE READ

  · SERIALIZABLE

  · SNAPSHOT

  这些都是基本的SQL Server事务隔离模式。

下载本文
显示全文
专题