Оптимизация базы данных

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

1. Уменьшите размер текстовых полей до необходимого минимума. Данные в базе хранятся в кодировке UTF-8, один символ занимает 4 байта. Если вы меняете размер полей в уже рабочей базе, то после изменения размера полей сделайте процедуру резервного копирования / восстановления, чтобы сжать базу и очистить ее от мусора. Также не меняйте размер большому количеству полей, т. к. это может привести к очень долгому сохранению изменений. При изменении размера поля DataExpress на самом деле создает новое поле и копирует содержимое старого поля в новое, старое поле затем удаляется. Поэтому размер базы после такой операции не уменьшается, а наоборот увеличивается.

2. Используйте компонент «Поле объекта» вместо частых обращений к полю объекта в выражениях.

3. Старайтесь избегать интенсивного использования функций DB в выражениях.

4. Если в выражении вы обращаетесь к одному и тому же полю объекта более одного раза, то можно сохранить результат в переменную и обращаться к переменной. То же самое и с итоговыми функциями и DB-функциями.

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

6. Чтение подчиненных данных формы (таблиц и запросов) тоже может сильно замедлять работу. В этом случае тоже имеет смысл создавать простую форма + запрос или использовать отчет. Если используются запросы, то можно переключить их на ручное обновление и управлять процессом обновления скриптом или действием.

7. Используйте выходной фильтр запросов и отчетов только тогда, когда невозможно использовать фильтр источника.

8. Делайте объекты, которые ссылаются на иерархические справочники обязательными для заполнения. В этом случае программа оптимизирует запрос к базе и скорость выборки значительно возрастет. Обратите внимание, что в этом случае записи с пустыми объектами не войдут в выборку.

9. Включите кэширование метаданных в настройках программы.