Как узнать живое время для явного курсора? - PullRequest
1 голос
/ 07 июня 2010

Через сколько времени сам оракул закрывает явно определенный курсор?

1 Ответ

3 голосов
/ 07 июня 2010

Oracle не закроет ваш курсор, если вы явно не попросите его. Вы можете открыть курсор на неактивной таблице, подождать 24 часа, а затем извлечь строки из курсора.

В активных таблицах (таблицы, которые могут обновляться / удаляться / вставляться) через некоторое время вы можете столкнуться с ORA-1555 (таблица была изменена, а информация для восстановления старых версий блоков была перезаписана). Если ваше табличное пространство UNDO установлено как AUTOEXTEND, вы можете безопасно получать данные с любого курсора, открытого менее чем UNDO_RETENTION секунд назад:

SQL> show parameter undo_retention

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
undo_retention                       integer     900

В моей БД я могу безопасно выбирать курсоры в течение 900 секунд (15 минут). Это низкий порог (Oracle будет хранить достаточно данных для восстановления старых версий блоков в течение не менее 15 минут).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...