oracle – COMMIT和ROLLBACK的时间会影响性能吗?

前端之家收集整理的这篇文章主要介绍了oracle – COMMIT和ROLLBACK的时间会影响性能吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一组ID.对于每个ID,我将根据ID在许多不同的表中插入许多记录.在插入差异表之间,将调用不同的业务检查.如果任何检查失败,则基于此ID插入的所有记录都将是ROLLBACK.此批量插入操作是通过使用PL / sql完成的. COMMIT和ROLLBACK的时间是否影响性能以及它如何影响?例如,在完成所有ID后,我应该在完成一个ID或COMMIT的进程后进行COMMIT吗?

解决方法

您的问题描述表明您有一大组较小的逻辑事务(每个新ID都是一个事务).您应该提交每个逻辑事务.等待提交整组事务的两个原因是:

>如果整个事务集实际上是事务本身 – 所有插入都必须成功才能提交任何行.在这种情况下,您较小的“交易”不是真正的交易.
>批量加载过程中没有重启功能,这实际上使这成为第1项的特殊情况.如果批量加载过程中止,则需要一种方法来跳过成功应用的ID.

Tom Kyte的建议是提交每个逻辑工作单元 – 交易.

猜你在找的Oracle相关文章