При работе программы «движок» БД SQLite может использовать дополнительное дисковое пространство для кэширования запросов – создания так называемых «файлов журналирования». В зависимости от сложности запросов их размеры могут быть соизмеримы с размерами основной базы данных (файл ua_main.db3).

Размер файла БД можно уменьшить, выполнив процедуру «Сжатия» :

Сервис->Настройка базы сообщений-> Сжать и обновить

Данная функция  оптимизирует структуру файла БД  и очищает неиспользуемые индексы, которые могут быть причиной замедления работы базы и увеличения числа сбоев.

Для предотвращение появления ошибок при работе с использованием БД SQLite необходимо регулярно выполнять эту процедуру и следить, чтобы свободное место на диске,  в котором находится файл ua_main.db3 и на  диске с временной папкой Windows были на порядок больше размера самого файла ua_main.db3.

 

Более эффективным является использование БД PosgreSQL.

Перейти на ее использование можно, используя соответствующие операции (см. меню  Сервис->Настройка базы сообщений).

Начиная с версии RexFly 2.0.90.2, алгоритм указанной процедуры «Сжатия» был существенно оптимизирован.

Данную процедуру для БД PosgreSQL нужно производить перед сжатием БД средствами pgAdmin, т.к.  это позволяет удалить большие бинарный объекты, не привязанные к сообщениям.

(большие бинарные объекты остаются в БД после удаления сообщений из корзины и занимают значительное место.)

Рекомендуемая последовательность  для оптимизации БД PosgreSQL:

  1. Удалить «старые» неиспользуемые сообщения или сбросить их в архив-дамп (в 2.0.90.3 появилась такая возможность)
  2. Очистить папку «удаленные»
  3. Выполнить процедуру  Сервис-Настройка базы сообщений- Сжать и оптимизировать
  4. Выполнить Vacuum… через pgAdmin