Запрещает/разрешает записывать в системный журнал BLOB-данные.
::=
Опция ON
разрешает (значение по умолчанию), OFF
– запрещает записывать в системный журнал BLOB-данные при выполнении транзакции в режиме EXCLUSIVE
(PESSIMISTIC
). В режиме AUTOCOMMIT
данная конструкция игнорируется (полное логирование в системный журнал BLOB-данных всегда отключено).
Команда действует на всё соединение (т. е. и на все каналы открытые в данном соединении).
Если задан режим LOG ON
, то все изменения BLOB-данных таблицы записываются в системный журнал и при фиксации транзакции (COMMIT
) переносятся в соответствующие BLOB-файлы этой таблицы.
Если задан режим LOG ON
, то для обеспечения возможности «теплого рестарта» СУБД обработка BLOB-данных выполняется следующим образом:
добавляемые во время транзакции BLOB-данные записываются одновременно в BLOB-файлы таблицы и в системный журнал;
удаляемые BLOB-данные записываются в системный журнал только при подтверждении транзакции (т.е. после подачи команды COMMIT
, когда они реально удаляются из BLOB-файлов).
Если задан режим LOG OFF
, то все изменения BLOB-данных (т.е. удаление/добавление страниц BLOB-файла) выполняются непосредственно в самих BLOB-файлах таблицы, а в системном журнале делается только отметка об удаленных (или добавленных) в BLOB-файле страницах. При фиксации транзакции (COMMIT
) добавленные страницы принудительно сбрасываются в БД, а страницы, помеченные как «удаленные», реально удаляются из BLOB-файлов без сохранения BLOB-данных в системном журнале.
При откате транзакции (ROLLBACK
) «удаленные» страницы остаются в прежних BLOB-файлах, а добавленные очищаются тоже без сохранения BLOB-данных в журнале.
Использование режима LOG OFF
повышает производительность СУБД при выполнении транзакций с BLOB-данными, но при этом «теплый рестарт» не гарантирует откат незаконченного подтверждения (COMMIT
) транзакции, содержащей удаление BLOB-данных (удаление будет продолжено). Физическая непротиворечивость БД гарантируется.