SQL Server的事务操作隔离模式介绍

 更新时间:2014年08月14日 09:13:37   投稿:junjie  
这篇文章主要介绍了SQL Server的事务操作隔离模式介绍,本文讲解了在何种情况下使用隔离模式,有哪些隔离模式,如何控制隔离模式等问题,需要的朋友可以参考下

一般而言,最好让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事务隔离模式。

相关文章

  • SQL Server Reporting Services 匿名登录的问题及解决方案

    SQL Server Reporting Services 匿名登录的问题及解决方案

    这篇文章主要介绍了关于 SQL Server Reporting Services 匿名登录的解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • Sql Server Management Studio连接Mysql的实现步骤

    Sql Server Management Studio连接Mysql的实现步骤

    本文主要介绍了Sql Server Management Studio连接Mysql的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 用一句SQL解决SQL中断号问题 推荐

    用一句SQL解决SQL中断号问题 推荐

    比如,连续生成的编号,由于某种操作(通常为删除)后,产生不连续的编号,我们将这种不连续的编号称为断号。
    2011-06-06
  • sql中 order by 和 group by的区别

    sql中 order by 和 group by的区别

    这篇文章主要介绍了sql中 order by 和 group by的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • 深入SQLServer中ISNULL与NULLIF的使用详解

    深入SQLServer中ISNULL与NULLIF的使用详解

    本篇文章是对SQLServer中ISNULL与NULLIF的使用进行了详细分析介绍,需要的朋友参考下
    2013-06-06
  • sqlserver迁移数据库文件存储位置的详细教程

    sqlserver迁移数据库文件存储位置的详细教程

    在实际的数据库管理和维护过程中,经常需要对SqlServer数据库的文件存放位置进行修改,这可能是因为硬盘空间不足、为了优化性能、便于备份、或者出于其他的管理需要,下面详细说明如何操作,需要的朋友可以参考下
    2024-09-09
  • Linux安装ODBC连接SQLServer数据库的步骤

    Linux安装ODBC连接SQLServer数据库的步骤

    这篇文章主要介绍了Linux安装ODBC连接SQLServer数据库 ,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • SQL server分页的4种方法示例(很全面)

    SQL server分页的4种方法示例(很全面)

    这篇文章主要给大家介绍了关于SQL server分页的4种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 系统隐形杀手——阻塞与等待(SQL)

    系统隐形杀手——阻塞与等待(SQL)

    本文主要介绍了系统隐形杀手——阻塞与等待。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • SQL Server的彻底卸载方法步骤

    SQL Server的彻底卸载方法步骤

    可能大家已经有深刻体会,SQL Server的卸载十分繁琐,本文主要介绍了SQL Server的彻底卸载方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05

最新评论