РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АНАЛИЗА ПРОИЗВОДИТЕЛЬНОСТИ ДЛЯ СУБД FIREBIRD

, научный руководитель, канд. техн. наук, доцент

Вологодский государственный технический университет

г. Вологда

Проблема контроля производительности сложных программных систем архитектуры клиент-сервер возникает в процессе их эксплуатации и развития, когда происходит динамичный рост размеров базы данных, многократное увеличение количества пользователей системы и, в итоге, фиксируется падение производительности [1]. Задачу повышения производительности системы можно решать различными способами:

- наращивание аппаратной составляющей;

- создание распределенной системы;

- редизайн бизнес-логики;

- повышение эффективности программного кода.

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

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

НЕ нашли? Не то? Что вы ищете?

Грамотное использование средств мониторинга позволит вовремя определить и устранить причины низкой производительности сервера. По вышеописанным причинам создание функциональной системы анализа производительности для конкретной СУБД актуально и несет несомненную пользу обслуживающему БД персоналу.

Основой представленной работы выступает клиент-серверная система, обслуживаемая СУБД Firebird. На рынке ПО существует достаточно систем, как проприентарных, так и свободно распространяемых, рассчитанных на применение с данной СУБД. Их можно разделить по такому критерию, как наглядность представления информации на две группы:

- представление в виде текстовых данных;

- визуализированное представление в виде графики.

По сути, существующие решения, такие как IBExpert, Sinatica Monitor for Firebird, используют API СУБД, что заставляет сервер вести стандартный неудобный журнал работы СУБД [2]. Далее производится анализ журнала.

Мое техническое предложение базируется на перепроектировании подсистемы журнализации сервера баз данных Firebird с целью получения удобных для обработки данных (рис. 1).

G:\5k\My\1\Диаграмавариантовиспользования.png

Рис.1. – Схема взаимодействия ПО

В качестве технологии визуализации предполагается использовать стандарт HTML5 в связке с языком программирования JavaScript. По причине повсеместной интеграции пятой версии стандарта HTML и JavaScript данные технологии выигрывают у таких альтернатив как Платформа Microsoft Silverlight, Платформа JavaFX.

На данный момент реализована подсистема журнализации СУБД путем изменения ее открытого программного кода. Спроектирован каркас системы визуализации результатов анализа производительности. Представленная разработка будет использоваться администраторами БД FireBird и программистами-разработчиками с целью выявления причин падения производительности системы и принятия своевременных мер по их устранению.

1.  Высокая Производительность Субд - Фантастика Или Реальность? [электронный ресурс] – 2012г. Режим доступа: http://www. *****/articles. php? p=45_1140.

2.  Helen Borrie. The Firebird Book: A Reference for Database Developers. . – СПб.: Изд-во БХВ-Петербург, 2007 – 592 с.