Каковы особенности работы с таблицами «в памяти»?

Чтобы начать работу с таблицами «в памяти» необходимо не забыть выполнить ряд настроек:

  1. до начала работы сконфигурировать БД с помощью утилиты gendb (до запуска ядра на БД):

    • задать размер очереди для таблиц «в памяти» (команда вида SET IN-MEMORY TABLES 50;);

    • задать количество столбцов у таблиц «в памяти» (команда вида SET IN-MEMORY COLUMNS 250;);

    • задать количество файлов (команда вида SET IN-MEMORY FILES 50;);

  2. запуск ядра производить с ключом /INMEMPOOL (ключ вида /INMEMPOOL=100000, где значение задается в страницах по 4 Кбайт).

Для того, чтобы сохранить на диск внесенные в таблицу данные, необходимо выполнить команду SAVE TABLE < имя_таблицы >;, а для восстановления сохраненной ранее таблицы необходимо выполнить RESTORE TABLE < имя_таблицы >;.

Для автоматической загрузки и сохранения данных таблиц «в памяти» можно воспользоваться опциями AUTOLOAD и AUTOSAVE для таблиц «в памяти». Подробнее можно прочитать в документе «СУБД ЛИНТЕР. Справочник по SQL», подраздел Таблицы «в памяти».

Операции над таблицами «в памяти» не включаются в транзакции, на них не действуют операции COMMIT и ROLLBACK. При ошибке операции над таблицей «в памяти» может быть выполнено автоматическое восстановление к старому состоянию, при этом на консоль ядра и в linter.out выдается сообщение "In-memory table ИМЯ_ТАБЛИЦЫ was rolled back to last saved/initial state after error КОД_ОШИБКИ".