WEB开发网
开发学院数据库Oracle Oracle与SQL Server事务处理的比较 阅读

Oracle与SQL Server事务处理的比较

 2009-04-16 13:13:08 来源:WEB开发网   
核心提示: 对数据库中的数据修改都是在内存中完成的,这些修改的结果可能已经写到硬盘也可能没有写到硬盘,Oracle与SQL Server事务处理的比较(2),如果在操作过程中,发生断电或系统错误等故障,直到用户发出Commit或Rollback操作,这个事务才会结束,数据库可以保证未结束的事务对数据库

对数据库中的数据修改都是在内存中完成的,这些修改的结果可能已经写到硬盘也可能没有写到硬盘,如果在操作过程中,发生断电或系统错误等故障,数据库可以保证未结束的事务对数据库的数据修改结果即使已经写入磁盘,在下次数据库启动后也会被全部撤销;而对于结束的事务,即使其修改的结果还未写入磁盘,在数据库下次启动后会通过事务日志中的记录进行“重做”,即把丢失的数据修改结果重新生成,并写入磁盘,从而保证结束事务对数据修改的永久化。这样也保证了事务中的操作要么全部完成,要么全部撤销。

二.事务设置及类型的区别

在SQL Server中有三种事务类型,分别是:隐式事务、显式事务、自动提交事务,缺省为自动提交。

自动提交,是指对于用户发出的每条SQL语句,SQL Server都会自动开始一个事务,并且在执行后自动进行提交操作来完成这个事务,也可以说在这种事务模式下,一个SQL语句就是一个事务。

显式事务,是指在自动提交模式下以Begin Transaction开始一个事务,以Commit或Rollback结束一个事务,以Commit结束事务是把事务中的修改永久化,即使这时发生断电这样的故障。例如下面是SQL Server中的一个显式事务的例子。

Begin Tran
 

Update emp Set ename=’Smith’ Where empno=7369

Insert Into dept Values(60,’HR’,’GZh’)Commit

隐式事务,是指在当前会话中用Set Implicit_Transactions On命令设置的事务类型,这时任何DML语句(Delete、Update、Insert)都会开始一个事务,而事务的结束也是用Commit或Rollback。

在Oracle中没有SQL Server的这些事务类型,缺省情况下任何一个DML语句都会开始一个事务,直到用户发出Commit或Rollback操作,这个事务才会结束,这与SQL Server的隐式事务模式相似。

上一页  1 2 3 4 5  下一页

Tags:Oracle SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接