2017-02-10 22 views
-1

Мне нужно запустить на production environemnt инструкцию delete, которая занимает много времени, и сервер закрывает любое соединение через 30 минут (ORA-03135 из того, что я вижу в журналах).Oracle - что происходит со сделкой в ​​случае соединения ORA-03135?

Что произойдет, если я запустим инструкцию delete и сервер закроет соединение? Завершит ли выполнение заявление на сервере или он немедленно отключится и откат? Может ли SQL * Plus set autocommit on помочь команде?

ответ

1

Проверьте руководство: https://docs.oracle.com/database/121/CNCPT/transact.htm#CNCPT037

Конец транзакции
Транзакция заканчивается, когда какой-либо из следующих действий происходит:

  • Пользователь выдает COMMIT или ROLLBACK заявление без SAVEPOINT.
  • Пользователь запускает команду DDL, такую ​​как CREATE, DROP, RENAME или ALTER.
  • Пользователь обычно выходит из большинства утилит и инструментов Oracle Database, в результате чего текущая транзакция будет неявно зафиксирована. Поведение фиксации, когда пользователь отключается, зависит от приложения и настраивается.
  • клиентский процесс завершается аварийно , в результате чего сделка будет неявно откат используя метаданные, хранимые в таблице транзакций и сегментом отката.
+0

Насколько разумно, чтобы ваше удаление принимало> 30 минут? – BobC