Nologging с режимом noappend - PullRequest
1 голос
/ 26 мая 2019

Я хочу выполнить оператор вставки с nologging.

Как я вижу, единственный способ - использовать подсказку APPEND в запросе.

Проблема в том, чтоподсказка APPEND не может работать с предложением DML ERROR LOGGING.

В моем случае я должен использовать это предложение.

Какая связь между APPEND (что на самом деле означаетплюнуть все данные в конец таблицы и не проверять блоки на "дыры") до (no)logging?Как я могу применить nologging с режимом NOAPPEND?

Я пытался изменить таблицу, но REDO просто растет, когда оператор с NOAPPEND подсказкой.

Я использую Oracle 11g.

Спасибо.

1 Ответ

0 голосов
/ 27 мая 2019

APPEND подсказки и NOLOGGING опции - это просто разные способы переключения между записями с прямым путем и обычными записями. Подсказки APPEND используются в инструкциях SQL, а NOLOGGING - это опция для таблицы или табличного пространства.

Проблема здесь в том, что прямая запись не работает с ведением журнала ошибок DML , и, насколько я знаю, прямого обходного пути нет. Не существует волшебной комбинации подсказок и опций, чтобы эти функции работали вместе.

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

...