Система управления базами данных (СУБД) - неотъемлемая часть многих клиент-серверных приложений. Базы данных могут использоваться для хранения состояния приложения, результатов бенчмарков, протоколирования событий системы и т.д. Конфигурация СУБД напрямую влияет на её производительность и, как следствие, на производительность приложения и других зависящих от СУБД процессов. Конфигурация СУБД включает в себя большое количество переменных, что усложняет подбор оптимальных значений параметров и поиск узкого места в конфигурации. Помимо большого количества возможных конфигураций СУБД, задача нахождения оптимального набора параметров усложняется в виду следующих причин.
1. Большое количество факторов, которые необходимо учитывать при конфигурации СУБД (типы запросов, характеристики сервера и т.д.).
2. Настройка параметров СУБД требует определённой квалификации, поэтому возникает потребность в найме дорогостоящих специалистов [6].
3. Не существует единственно оптимального решения проблемы оптимальной конфигурации СУБД. Поэтому переиспользование конфигурации, оптимизированной под определённые условия, не может гарантировать наилучшую производительность.
Исходя из перечисленных выше особенностей, появляется необходимость автоматизации процесса подстройки параметров СУБД.
1 Постановка задачи
Целью данной работы является создание инструмента автоматической подстройки параметров СУБД.
Для достижения цели были поставлены следующие задачи.
1. Собрать и сформулировать требования к инструменту.
2. Разработать архитектуру инструмента.
3. Реализовать инструмент.
4. Апробировать инструмент на реальных данных и открытых бенч-марках.
В рамках выполнения работы были выполнены следующие задачи.
1. Были собраны и сформулированы функциональные и нефункциональные требования к инструменту.
2. Разработана модульная архитектура инструмента, абстрагирующаяся от:
• вида бенчмарка;
• СУБД и конфигурационных параметров;
• алгоритма оптимизации.
3. Реализован инструмент с интерфейсом командной строки, удовлетворяющий требованиям.
4. Был сгенерирован бенчмарк на основе нагрузки на производственную базу данных.
5. Инструмент был апробирован на сгенерированном бенчмарке и продуктовом сервере. В результате апробации, производительность базы данных на бенчмарке улучшилась на 9%.