事务的隔离级别就是用来设置事务在读取数据时的隔离状态,提高数据并发使用效率的一种手段。事务的隔离级别由低到高可分为5个级别。MySQL默认级别,这种隔离级别可以避免“不可重复读取”,达到可重复读取。更改事务的隔离级别的语法代码如下:事务隔离级别的作用范围分为两种: 全局级:对所有的会话有效 会话级:只对当前的会话有效例如,设置会话级隔离级别为READ COMMITTED:或:设置全局级隔离级别为READ COMMITTED:......
2025-09-30
每个事务都是一个所谓的隔离级,它定义了用户彼此之间的隔离和交互的程度。事务关系型数据库管理系统的一个重要的属性:它可以隔离在服务器上正在处理的不同的会话。在单用户的环境中,这个属性无关紧要。但在多用户环境下,能够隔离事务就显得非常重要。这样它们之间既不互相影响,还能保证数据库性能不受影响。
如果没有事务的隔离性,不同的SELECT语句将会在同一事务的环境中查询到不同的结果,因为在查询期间,数据有可能已被其他事务修改,这将导致不一致性。使用户不确定本次查询结果是否正确,结果能否作为其他操作的基础。因此事物的隔离性可以强制对事务进行某种程度的隔离,保证其他操作和应用在事务中看到的数据是一致的。较低级别的隔离性可以增加并发,但代价是降低数据的正确性。反之,较高的隔离性可以确保数据库的正确性,但可能会降低并发,从而影响到系统的执行效率。
SQL Server 2012提供了五种隔离级:未提交读(READ UNCOMMⅠTTED)、提交读(READ COMMHⅠED)、可重复读(REPEATABLE READ)、快照(SNAPSHOT)和序列化(SERⅠALⅠZABLE)。
在SQL Server中,使用SET TRANSACTⅠONⅠSOLATⅠON LEVEL语句定事务的隔离级别。
由于在前一段T-SQL语句中创建了一个事务,但没有COMMⅠT语句,即该事务没有结束语或被撤销,所以后一段T-SQL语句执行后,系统提示正在执行查询,而不显示查询结果,如图7-3所示。
(https://www.chuimin.cn)
图7—3 系统提示正在执行查询
这时候的COLLEGE数据库的默认隔离级别是未提交读,如果一个事务更新了数据,但事务尚未结束,这时就会发生脏读的情况。在第一个查询窗口中使用ROLLBACK语句回滚以上操作,或直接关闭查询窗口终止事务。这时使用SET语句设置事务的隔离级别为READ UNCOMMH-ⅠED,执行如下语句:
SET TRANSACTⅠONⅠSOLATⅠON LEVEL READ UNCOMMⅠTTED
重复刚才的查询操作,就可以看到查询结果,因为此时系统被设置了READ UNCOMMTTED,允许进行脏读。
相关文章
事务的隔离级别就是用来设置事务在读取数据时的隔离状态,提高数据并发使用效率的一种手段。事务的隔离级别由低到高可分为5个级别。MySQL默认级别,这种隔离级别可以避免“不可重复读取”,达到可重复读取。更改事务的隔离级别的语法代码如下:事务隔离级别的作用范围分为两种: 全局级:对所有的会话有效 会话级:只对当前的会话有效例如,设置会话级隔离级别为READ COMMITTED:或:设置全局级隔离级别为READ COMMITTED:......
2025-09-30
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2025-09-30
数据库设计过程是指在一个给定的应用环境,选择合理的数据库模式和数据模型进行数据库及应用系统设计,使之能够有效存取数据并满足用户需求的过程。数据库设计的过程也和其他软件系统设计一样,是个反复迭代的过程。数据库设计过程的划分也不是十分严格的,通常在系统设计的实施中,也未必完全依照这六个步骤顺序去开发,不过这六个阶段基本上包括了数据库设计的全过程和相关问题。......
2025-09-30
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2025-09-30
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。人们经过探索提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。工具在很大程度上依靠开发人员的经验来保证数据库模型能生成可行的设计方案和高性能的数据库。大多数的数据库设计方法都需要经历这三个步骤。根据所选择的设计方法按部就班地进行并最终获得一个实用的应用系统。......
2025-09-30
下面介绍的优化策略能提高查询的效率,但它们不一定是最优的策略,实际上“优化”一词并不是很确切,用“改进”或“改善”或许更恰当些。即使这样,使用预处理方法执行连接的时间一般仍大大减少。当查询视图时,定义视图的表达式就是公共子表达式的情况。......
2025-09-30
例如,一名学生可以用信息“”描述,这样的一行数据称为一条记录。单看这行数据我们很难知道其确切含义,但对其进行如下解释:张三是9912101班的男学生,1981年出生,计算机系应用软件专业,其内容就是有意义的。因此,数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。数据的静态特征包括数据的基本结构、数据间的联系以及对数据取值范围的约束。数据的动态特征是指对数据可以进行符合一定规则的操作。......
2025-09-30
如果要使用缺省参数创建一个学籍管理数据库StuData,可以使用如下命令:Create Database StuData如果希望为数据库或事务日志指定一个或者多个特定文件,增加一个On Primary子句,列出一个或者多个文件,并可为分配这个文件的空间指定一个可选值,其命令形式如下:Create Database StuDataOn Primary,;如果为了提高性能和可恢复性,则可以使用Log On子句来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上,示例如下:Create Database StuDataOn Primary,Log On;GO......
2025-09-30
相关推荐