SQL Developer Commit

时间:2015-04-30 12:49:49

标签: sql oracle time oracle-sqldeveloper commit

我正在使用Oracle SQL Developer工具3.0.02版,我在理解以下内容时遇到了一些问题:如果我提交更新并且时间响应为'0秒',则提交正确完成?因为它发生了几次并且DB没有更新。我不知道这是不是巧合。当我第二次提交(只是为了确定)后,它显示'0秒',它显示为'0,016秒'并且更新显示正确。但我不想连续4次做出正确的事情。你们怎么看待这个?哦,它并没有给我任何错误。

提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以查看Oracle文档,了解为什么commit是如此快速的操作(rollback 更长,它必须引用撤消段)。
如果其他人提交了他们的数据,那么“丢失”提交可能会发生,这似乎与您的“旧”数据相同。

答案 1 :(得分:1)

提交所花费的时间与任何故障无关。该工作由查询完成,并在事务完成的元数据中的某处提交。 Commit几乎可以做任何事情(只需强制将一些日志文件保存在磁盘上)。如果出现问题(即承诺不工作),您将收到错误消息。 没有错误表示一切正常,数据库完成了你所要求的所有事情。

例如,您的更新可能无效:

UPDATE db SET user='name' where file='name_of_file' and answer='okay' ;

如果没有名为' name_of_the_file'答案='好的'数据库不起作用。没什么可承诺的。

为了完整答案,我将从blog添加以下几点:

  

提交事务时,会发生以下情况:

     
      
  1. 事务已提交的关联撤消表空间记录的内部事务表,以及   事务的相应唯一系统变更号(SCN)是   分配并记录在表格中

  2.   
  3. 日志写入器进程(LGWR)将SGA的重做日志缓冲区中的重做日志条目写入重做日志文件。它也写了   事务的SCN到重做日志文件。这个原子事件构成了   提交交易

  4.   
  5. Oracle发布行和表上的锁

  6.   
  7. Oracle标记交易完成

  8.