[Перевод] Еще несколько шагов к повышению производительности Firebird

a44481e1992c348e323fafa38b10fb7a.jpg

Данная статья является второй частью перевода руководства по повышению производительности Firebird за авторством А.Ковязина и Э.Грегорио от 23.05.2024 (и потому продолжается сквозная нумерация пунктов), а так же текстовой расшифровкой соответствующего видео.

2.1 В чём проблема с конфигурацией по умолчанию?

Вы используете стандартный файл firebird.conf, который поставляется вместе с обычной версией Firebird и устанавливается через стандартный установщик для Windows или репозиторий Linux.Если это так, мы должны сообщить вам неприятную новость: этот файл firebird.conf далек от идеала для вашей базы данных Firebird.

Стандартный файл firebird.conf рассчитан на работу на минимально возможном оборудовании или в среде виртуальных машин. К сожалению, многие его параметры устарели, поскольку были актуальны лет 20 назад.

Однако если вы используете HQbird с Firebird, ситуация несколько улучшается. HQbird предоставляет файл firebird.conf, который гораздо лучше подходит для типичного производственного сервера.

2.2. Создание оптимальной конфигурации Firebird

Хотите улучшить файлы firebird.conf (а также databases.conf) под ваше оборудование или виртуальные машины? Мы предлагаем вам воспользоваться бесплатным инструментом, который может существенно облегчить этот процесс. Он называется «Калькулятор конфигурации для Firebird». Этот инструмент способен значительно увеличить производительность вашей базы данных Firebird. Сервис автоматически сгенерирует оптимизированные настройки для вашей системы и, что особенно важно, поможет избежать типичных ошибок, которые часто возникают при ручной настройке Firebird.

Для достижения наилучших результатов мы можем предложить дополнительные услуги по оптимизации, включающие глубокий анализ ваших SQL-запросов, структуры базы данных и многое другое.

Чтобы начать работу с калькулятором конфигурации, просто перейдите по следующей ссылке: https://cc.ib-aid.com/calculator.html Но будет еще лучше, если вы сначала зарегистрируетесь на сайте https://cc.ib-aid.com — это даст вам полный доступ к набору инструментов для работы с Firebird.

После регистрации выберите нужную версию Firebird, укажите архитектуру системы, а затем введите параметры вашего оборудования или виртуальной машины (объем оперативной памяти, количество ядер процессора). Также необходимо указать ключевые характеристики вашей базы данных и предполагаемой нагрузки: общий объем базы данных, размер страницы базы данных и т.д., после чего нажать кнопку «Создать».

Процесс расчета конфигурации

Когда расчеты будут завершены, вы получите файл с оптимальными настройками. Скопируйте эти параметры и замените их в файлах firebird.conf и databases.conf.

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

2.3. Очень важный момент!

Убедитесь, что в заголовке вашей базы данных параметр Page Buffers равен нулю! Это важно для корректной работы и оптимизации производительности вашего хранилища данных.

Если же параметр Page Buffers отличен от нуля — значение необходимо изменить.

Чтобы проверить наличие этого параметра, вам необходимо выполнить следующую команду в терминале (или другом интерфейсе командной строки):

/opt/firebird/bin/gstat -h /path/to/database.fdb

Или, если вы работаете в Windows:

<путь_к_каталогу_Firebird_bin>\\gstat.exe -h Disk:Path_to_database.fdb

Результат выполнения команды будет выглядеть примерно так:

Gstat execution time Mon Nov 28 11:25:03 2022

Database header page information:

Flags 0

Generation 5914

System Change Number 0

Page size 16384

ODS version 12.0

Oldest transaction 6194

Oldest active 6195

Oldest snapshot 6195

Next transaction 6220

Sequence number 0

Next attachment ID 63

Implementation HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC

Shadow count 0

Page buffers 0

Next header page 0

Database dialect 3

Creation date Nov 24, 2022 16:42:58

Attributes

Variable header data:

Sweep interval: 20000

Database GUID: {260809FC-FFF7-488F-7ABF-FEF0A84F6900}

*END*

Gstat completion time Mon Nov 28 11:25:03 2022

Обратите внимание на строку с параметром Page Buffers. Эта строка должна содержать значение, равное нулю. В случае, если в этой строке указано любое другое значение, отличное от нуля, это может привести к тому, что данное значение будет иметь приоритет над настройками, которые указаны в конфигурационных файлах firebird.conf и databases.conf.

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

gfix -buff 0 /path/to/database.fdb -user SYSDBA -pass masterkey

После выполнения всех необходимых изменений и настроек вам потребуется перезагрузить сервер баз данных Firebird. Это необходимо для того, чтобы внесённые вами изменения могли вступить в силу и начать применяться ко всем новым соединениям с базой данных.

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

Ссылка на видеоверсию на канале Теплый Ламповый SQL: https://youtu.be/IEIJ1gfjxUs

Официальный канал на Substack: https://firebirdfoundation.substack.com/ — подписывайтесь что бы получать информацию из первых рук.

Сообщество в ВК: https://vk.com/firebird_friday

Чат в Телеграме: https://t.me/firebird_friday

Habrahabr.ru прочитано 2012 раз