为了模拟并发环境,SQL SERVER中打开两个查询窗口(分别表示事务1、事务2)即可,并发用户用事务1,事务2简称测试表脚本:CREATE TABLE [Customer]( [CustID] [int] NOT NULL, [Fname] [nvarchar](20), [Lname] [nva...
分类:
其他好文 时间:
2014-07-27 10:42:42
阅读次数:
192
上接 : EJB事务控制(CMT和BMT两种方式以及JTA事务)上篇代码: @TransactionAttribute(TransactionAttributeType.REQUIRED) //设置事务的传播特性为required上篇文章为什么设置传播特性为: required? 事务的传播特性有7...
分类:
其他好文 时间:
2014-07-24 17:25:55
阅读次数:
215
事务并发所带来的问题 脏读:一个事务读取到另一个事务尚未提交的数据。 不可重复读:同一事务,两次读取同一数据,得到不同的结果。 幻读:同一事务,用相同的条件读取两次,得到的结果集数据条数不同(数据条数...
分类:
其他好文 时间:
2014-07-22 09:10:36
阅读次数:
191
数据库事务常见的三种现象:1脏读(dirty read):未提交读。(A修改年龄为20,B读出20后,A回滚为18。) 出现场景:大多数数据库默认的级别为提交读(SQLServer,Orcal),所以除非设置隔离级别为Readuncommitted,否则不会出现。 解决方案:SET TRANSACT...
分类:
其他好文 时间:
2014-07-19 00:31:01
阅读次数:
203
锁应该说是由关系型数据库ACID(Atomicity,Consistency,Isolation,Durability)特性而引出的。以下将测试在创建及更新表过程中SQL Server锁资源分配情况获取当前会话的事务隔离级别:DBCC USEROPTIONS测试环境:SQL SERVER 2008 ...
分类:
数据库 时间:
2014-07-18 20:07:52
阅读次数:
359
Multiversion Concurrency ControlMVCC避免了许多需要加锁的情形以及降低消耗。这取决于它实现的方式,它允许非阻塞读取,在写的操作的时候阻塞必要的记录。MVCC保存了某一时刻数据的一个快照。意思就是无论事物运行了多久,它们都能看到一致的数据。锁的策略 ...
分类:
数据库 时间:
2014-07-16 19:55:50
阅读次数:
238
其实很简单,single-transaction可以让mysqldump 的时候不锁表。但是他有3个前提innodb的引擎不能在执行的同时,有其他alter table ,drop table,rename table,truncate table的操作。隔离级别 必须是REPEATABLE REA...
分类:
数据库 时间:
2014-07-16 19:06:58
阅读次数:
526
1.ACID:原子性、一致性、隔离性、持久性2.事务:显示,隐士事物3.不一致性: 更新丢失(覆盖了)、脏读(读取到了未提交的数据)、不可重复读(两次读取的结果不一致)4. 四个隔离级别:--主要保证查询时最新的 READUNCOMMITTED --不申请X锁与S锁 READCOMMITTE...
分类:
其他好文 时间:
2014-07-16 08:43:43
阅读次数:
252
事务的特征:ACID
Atomicity:原子性
Consistency:一致性
Isolation:隔离性
Duration:持久性
在SQL标准中定义了事务的四种隔离级别:
1,read uncommitted 未提交读
事务中的修改,即使没有提交,对其他事务也都是可见的。即事务可以读取未提交的数据,即会产生脏读。
2,read committed 提交读 ...
分类:
数据库 时间:
2014-07-10 22:29:41
阅读次数:
319
数据库软件需要解决的主要问题为“数据一致性”和“访问并发性”之间的矛盾,在理论上人们总结出保证数据一致性需要解决的几种不确定性情况,并以此为基础提出了数据库事务的几种隔离级别。
首先,来看一下,解决数据一致性的过程中,方法会发生的几种不确定情况。
脏读:
脏读又称无效数据的读出,是指在数据库访问的过程中,事务T1对某一值进行了修改,在没有提交之前,事务T2可以读取到事务T1的修改,由于T1事...
分类:
数据库 时间:
2014-07-08 18:56:54
阅读次数:
245