【问题标题】:commit after select选择后提交
【发布时间】:2013-01-04 00:32:50
【问题描述】:

commit 可能在 DB2 和 MySQL 的 select 语句之后可能需要时,我已阅读说明:

Is a commit needed on a select query in DB2?

Should I commit after a single select

我的问题是,在使用 Oracle 执行 select 语句后,commit 何时以及为何重要?

【问题讨论】:

  • 我不是 Oracle 专业人士,所以也许有更多知识的人可以对此发表评论,但是我运行的脚本已经执行了大量的大型 select 语句,最终返回了数据库服务器临时空间问题。在每次选择后提交消除了这一点。

标签: sql oracle select commit


【解决方案1】:

我能想到的只有几种情况,您可能希望在选择后提交。

  1. 如果您的选择加入数据库链接,将创建一个事务。如果您尝试关闭此链接,除非您提交/回滚事务,否则您会收到错误消息。

  2. 选择更新(如 DCookie 所说)以释放锁。

  3. 如果设置了序列化隔离级别,则删除或添加一个,如果您在调用此之前一直从数据库链接中进行选择。

【讨论】:

    【解决方案2】:

    如果您执行了SELECT ... FOR UPDATE;,您将需要一个 COMMIT 或 ROLLBACK 来释放为更新而保留的记录。否则,我想不出任何理由这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      相关资源
      最近更新 更多