`
danwind
  • 浏览: 232709 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

事务中的Savepoints

 
阅读更多

事务中的Savepoints

你可以在事务上下文中声明称为savepoint的中间标记。Savepoint将一个长事务分隔为较小的部分。

使用savepoint,你可以在长事务中任何点任意标记你的操作。然后你可以选择回滚在事务中当前点之前、声明的savepoint之后执行的操作。比如,你可以在一长段复杂的更新中使用savepoint,如果犯了个错,你不需要重新提交所有语句。

Savepoints在应用程序中同样有用。如果一个过程包含几个函数,那可以在每个函数前创建一个savepoint。如果一个函数失败,返回数据到函数开始前的状态并在修改参数或执行一个恢复操作后重新运行函数就非常容易。

在回滚到一个savepoint后,Oracle释放由被回滚的语句持有的锁。其他等待之前被锁资源的事务可以进行了。其他要更新之前被锁行的事务也可以执行。

当一个事务回滚到一个savepoint,发生下列事件:

1. Oracle仅回滚savepoint之后的语句。

2. Oracle保留这一savepoint,但所有建立于此后的savepoints丢失。

 

3. Oracle释放在该savepoint后获得的所有表、行锁,但保留之前获得的所有锁。

事务保持活动并可继续。

无论何时一个会话在等待事务,到savepoint的回滚不会释放行锁。为了确保事务如果无法获得锁也不会悬挂(hang),在执行UPDATE或DELETE前使用FOR UPDATE ... NOWAIT。(这里指回滚的savepoint之前获得的锁。该savepoint后获得的行锁会被释放,之后执行的语句也会被彻底回滚。)

 

转载于http://hi.baidu.com/zhengguobest/blog/item/5245cefd3a9ee047d7887d4f.html

分享到:
评论

相关推荐

    实验17事务与并发控制.pdf

    5. **保存点(Savepoints)**:在事务中设置保存点允许部分回滚。`SAVE TRANSACTION`创建一个保存点,而`ROLLBACK TO SAVEPOINT`则回滚到指定的保存点,这样可以在不完全撤销整个事务的情况下撤销部分操作。 通过这...

    MySql事务处理.docx

    在事务处理中,回滚段(rollback segments)和保存点(savepoints)也扮演着重要角色。回滚段用于存储undo信息,而保存点允许在事务内部设置临时的提交点,可以部分回滚到保存点而不影响整个事务。 总的来说,MySQL...

    oracle 事务1

    在Oracle数据库系统中,事务(Transaction)是数据库操作的基本单元,它封装了一组数据库操作,这些操作要么全部成功,要么全部不成功。Oracle事务管理是确保数据一致性、完整性和并发控制的重要机制。在这个主题中...

    [课堂课件讲解]Java微服务实践-Spring Boot 数据库JDBC.pptx

    3. 保护点(Savepoints):保护点是在事务中创建,提供细粒度事务控制。 三、JDBC 4.0(JSR-221) JDBC 4.0是Java Database Connectivity的第四代规范,提供了许多新的功能和改进。核心接口包括: 1. 驱动接口:...

    Killtest1Z0-051.pdf

    在Oracle数据库中,保存点允许用户在事务内部设置一个标记点,这样在事务结束时(即提交COMMIT或回滚ROLLBACK时),可以只回滚到这个特定的保存点,而不是整个事务的开始。因此,选项B(Savepoints may be used to ...

    sqalx:sqlx的嵌套事务

    斯卡尔克斯 sqalx(发音为“ scale-x”)是在之上构建的库,它允许无缝创建嵌套事务,并避免考虑是否在事务内调用函数。 使用sqalx,您可以轻松创建可重用和可组合的函数,这些函数可在事务内或事务外调用,并可自行...

    Killtest 免费提供 1Z0-051 资料下载

    - **Savepoints**: Savepoints是事务处理中的一个概念,允许用户在执行一系列数据操作语言(DML)操作时创建一个保存点。这使得在遇到错误或决定回退部分事务时,可以回到这个保存点,而无需撤销整个事务。题目中指出...

    php事务回滚简单实现方法示例

    在PHP中,事务是用于管理一系列数据库操作的机制,确保这些操作作为...了解这些基础概念后,你可以深入研究更高级的事务管理策略,如nested transactions(嵌套事务)和savepoints(保存点),以应对更复杂的应用场景。

    OCP-1Z0-071新题

    4. 事务管理中的保存点(savepoints)。 在数据库事务管理中,保存点用于标记事务中的一个点,使得事务可以部分回滚到该点而不必回滚整个事务。文档中的题目提到了保存点的使用仅限于 COMMIT 操作或 ROLLBACK 操作...

    MySQL Group Replication 组复制原理

    在传统异步复制中,主库在完成事务处理并将相关信息写入binlog后,无论从库是否成功接收到这些信息,都会立即完成commit提交。这种方式可以提高主库的性能,但可能导致数据的一致性问题。 ##### 2、半同步复制 相比...

    Delphi SQLite Wrapper 2.1.2(2012-08-21)

    4、支持任何Sqlite的SQL命令并遍历结果集、可以使用准备好的查询、可以使用参数化查询、可以使用事务(包括保存点[savepoints])、可以定义自己的UDF(用户定义的SQL函数)、可以定义自己的排序规则;

    Beginning MySQL Code.zip

    这一章会介绍如何在MySQL中开启和提交事务,以及如何处理回滚(Rollback)和保存点(Savepoints)。 6. **Chapter 14 和 Chapter 15: 存储引擎与性能优化**: - 存储引擎(如InnoDB和MyISAM)的选择对数据库性能有...

    Oracle-CommittingData:如何将数据提交到 Oracle 数据库的示例

    除了基本的 `COMMIT`,Oracle 还提供了一些高级特性,如 Savepoints,允许在事务中设置一个点,之后如果发生错误,可以回滚到该点而不是整个事务。此外,还可以使用 `CallableStatement` 来调用存储过程,这在进行...

    JDBC 3.0 数据库编程 随书代码

    - **Savepoints**:允许在事务中设置保存点,便于部分回滚。 - **CallableStatement的OUT参数**:支持存储过程的返回值和输出参数。 - **RowSet**:实现了滚动和断开连接的ResultSet,提高了灵活性。 - **Statement...

    Mydumper的使用.pdf

    - **--use-savepoints**:使用 savepoints 减少采集 metadata 所需的时间,需要 SUPER 权限。 #### 五、结论 通过上述介绍可以看出,Mydumper 是一款功能强大的 MySQL 备份工具,尤其适用于需要快速备份大型数据库...

    oracle官方文档-Oracle Database Concepts

    通过提交(Commit)、回滚(Rollback)和保存点(Savepoints)操作,可以控制事务的生命周期。 6. **并发控制**:Oracle使用行级锁定(Row-Level Locking)来实现并发控制,避免数据冲突。此外,还有读已提交(Read...

    oracle 官方教程 PLSQL Fundamentals

    10. **事务管理**:学习如何在PL/SQL中控制事务,包括BEGIN、COMMIT、ROLLBACK语句的使用,以及保存点(Savepoints)的概念。 11. **索引与性能优化**:虽然不是PL/SQL的直接内容,但理解如何创建和使用索引,以及...

    mysql安装innodb插件

    在MySQL数据库系统中,InnoDB存储引擎是非常重要的一种类型,它支持事务处理(Transactions)、行级锁定(Row-Level Locking)以及外键约束(Foreign Key Constraints),这些特性使得InnoDB成为大多数应用场景中的...

    spring webflow

    5. **恢复/保存点(Savepoints)**:Spring Webflow支持在流程中设置恢复点,这样即使在流程中间出现异常,也能恢复到之前的状态,提供了一种错误处理和回退机制。 6. **集成Spring MVC**:Spring Webflow与Spring ...

Global site tag (gtag.js) - Google Analytics