SQL Server高并发问题系列基础篇(谈谈事务的属性)

前言

SQL Server作为一款优秀的关系型数据库,在支撑起最基本的数据存储功能之外,还承受着各种大量的并发操作和用户访问。

而本系列内容将一层层慢慢分析出在SQL Server的生态环境中,是怎样通过一系列的机制来维持各种访问的秩序,俗话说得好:“有人的地方就有了江湖,有了江湖就有了江湖规矩”,同样在SQL Server的世界中,也有它自己的“江湖规矩”,如果你不按照规矩出牌,那么你将会被踢出局!

同样本系列也会分析出遇到各种问题的解决思路,供院友们参考。

本篇作为第一篇,首先同样先提基础,而后再谈会产生的问题。

本篇主要介绍事务的属性,关于事务其实是老生常谈,稍微有点基础的朋友都知道,但这里还是要再赘述一遍。

技术准备

基于SQL Server2012版本。

概念介绍

事务是作为单个逻辑单元执行的一系列操作,数据库的操作都是基于这些逻辑的单元的堆叠。而每个逻辑单元必须具备4个属性:原子性、一致性、隔离性和持久性,这有这样才能成为一个事务。

以上也就是我们通常称呼的(ACID)。

 

  • 原子性

所谓的原子性就是事务必须是原子工作单元,就是说其操作性不不可分割。

简单点讲:就是所谓的事务操作要么全部执行,要么全都不执行,不存在二义性操作!

这个很好理解:比如你去修改数据库数据,要修改100条记录,要不就100条都不修改,要不就都修改,不存在修改了一部分而另外一部分没改的情况发生。

在SQL Server中,每一个单独的语句都可以看做是默认包含在一个事务之中,这里的概念就是隐含事务,每个事务性操作要么执行完成,要么回滚到初始值状态。

提到这里如果数据量比较大,比如很多职位要求中提到的“海量数据”,就这一个属性就有很大“雷”!......文章后面分析

 

  • 一致性

事务在完成时,必须要使得所有的数据都保持一致状态。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。