明辉站/网络软件/内容

SQL Server 的隔离等级级别

网络软件2023-09-06 阅读
[摘要]软件等级:更新时间:2016-11-11版本号:v5.7.10 MySQL Server x64官方正式版免费下载立即下载 SQL Server 的隔离级别未提交读(事务隔离的最低级别,仅可保证不读取物理损坏的数据)。提交读(SQL Server 默认级别)。可重复读。可串行读(事务隔...
MySQL Server x64官方正式版免费下载

软件等级:

更新时间:2016-11-11

版本号:v5.7.10

MySQL Server x64官方正式版免费下载

 

SQL Server 的隔离级别
未提交读(事务隔离的最低级别,仅可保证不读取物理损坏的数据)。

  提交读(SQL Server 默认级别)。

  可重复读。

  可串行读(事务隔离的最高级别,事务之间完全隔离)。

  如果事务在可串行读隔离级别上运行,则可以保证任何并发重叠事务均是串行的。

  下面四种隔离级别允许不同类型的行为。  

 当锁定用作并发控制机制时,它可以解决并发问题。这使所有事务得以在彼此完全隔离的环境中运行,但是任何时候都可以有多个正在运行的事务。 

  可串行性是通过运行一组并发事务达到的数据库状态,等同于这组事务按某种顺序连续执行时所达到的数据库状态。   

  SQL-92 隔离级别 

  尽管可串行性对于事务确保数据库中的数据在所有时间内的正确性相当重要,然而许多事务并不总是要求完全的隔离。例如,多个作者工作于同一本书的不同章节。新章节可以在任意时候提交到项目中。但是,对于已经编辑过的章节,没有编辑人员的批准,作者不能对此章节进行任何更改。这样,尽管有未编辑的新章节,但编辑人员仍可以确保在任意时间该书籍项目的正确性。编辑人员可以查看以前编辑的章节以及最近提交的章节。 

  事务准备接受不一致数据的级别称为隔离级别。隔离级别是一个事务必须与其它事务进行隔离的程度。较低的隔离级别可以增加并发,但代价是降低数据的正确性。相反,较高的隔离级别可以确保数据的正确性,但可能对并发产生负面影响。应用程序要求的隔离级别确定了 SQL Server 使用的锁定行为

1、数据库事务的隔离级别:四种

 

隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)
读未提交(Read uncommitted) 可能 可能 可能
读已提交(Read committed) 不可能 可能 可能
可重复读(Repeatable read) 不可能 不可能 可能
可串行化(Serializable ) 不可能 不可能 不可能

 

2、数据库一般的默认隔离离级别是“读已提交”,默认的事务隔离级别下:Insert,update ,delete下的是X锁, 会等待事务完成。通常情况下可以把隔离级别设为Read Commited,它能避免脏读,而且有较好的并发性能。尽管它会导致不可重复读、虚读和第二类更新丢失等问题,在可能出现这类问题的个别场合可以由应用程序釆用悲观锁或乐观锁来控制。


3、SQL语句可以使用SET TRANSACTION ISOLATION LEVEL来设置事务的隔离级别。如:SET TRANSACTION ISOLATION LEVEL   Read Committed。若要在应用程序中使用更严格或较宽松的隔离级别,可以通过使用   set transaction isolation level语句设置会话的隔离级别,来自定义整个会话的锁定。   
指定隔离级别后,sql server会话中所有select语句的锁定行为都运行于该隔离级别上,并一直保持有效直到会话终止或者将隔离级别设置为另一个级别。

4、另外要提一点:SQL标准对事务隔离级别的规定,是按该级别不可能发生什么问题来确定的,不一定会发生这样的问题; 所以,不同的数据库对事务隔离的级别约定不一样,比如,有的数据库把可重复读级别按可串行化来对待。(lkdlhw_2000个人理解:各个数据库应该都遵循四种标准的事务隔离等级的定义,但是某些数据库具体实现可能不存在四种,因为串行化可以避免不可重复读,因此某些数据库语法上支持设置事务隔离等级为不可重复读,但实际上是串行化在起作用。也就是说只要该级别能够避免不可重复读的问题,就可以称之为不可重复读取级别。)

5、该隔离级别定义一个事务必须与其他事务所进行的资源或数据更改相隔离的程度。事务隔离级别控制:
     读取数据时是否占用锁以及所请求的锁类型。
     占用读取锁的时间。
     引用其他事务修改的行的读取操作是否:
     在该行上的排他锁被释放之前阻塞其他事务。
     检索在启动语句或事务时存在的行的已提交版本。
     读取未提交的数据修改

 


常见的网络操作系统有UNIX、Netware、Windows NT、Linux等,网络软件的漏洞及缺陷被利用,使网络遭到入侵和破坏。

……

相关阅读