我需要在生产环境中运行一个删除语句,这需要花费很多时间,服务器在30分钟后关闭任何连接(ORA-03135与我在日志中看到的一样)。
如果我启动delete语句并且服务器将关闭连接会发生什么?声明是否会在服务器上完成执行,还是会立即将其关闭并回滚?在这种情况下,SQL * Plus set autocommit on
命令可以提供帮助吗?
答案 0 :(得分:2)
查看手册:https://docs.oracle.com/database/121/CNCPT/transact.htm#CNCPT037
交易结束
当发生以下任何操作时,交易结束:
- 用户发出不带SAVEPOINT子句的COMMIT或ROLLBACK语句。
- 用户运行DDL命令,例如CREATE,DROP,RENAME或ALTER。
- 用户通常从大多数Oracle数据库实用程序和工具退出,导致隐式提交当前事务。用户断开连接时的提交行为取决于应用程序并且是可配置的。
- 客户端进程异常终止,导致事务使用存储在事务中的元数据隐式回滚 表和撤消段。