ISSN 2225-7551

Ю.Н. Возовиков, аспирант

А.А. Мунзер, магистр

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

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ МАТЕРИАЛИЗОВАННЫХ ПРЕДСТАВЛЕНИЙ

Предлагается метод анализа механизма реализации и эффективности применения материализованных представлений, основанный на использовании имитационной модели реляционных баз данных.

Вступление

Использование материализованных представлений (МП), то есть – сохраненных результатов запросов к реляционной базе данных (РБД) – эффективное средство повышения производительности информационной системы (ИС) [1]. Однако целесообразность применения такого решения определяется  рядом факторов, которые аналитически трудно оценить. Кроме этого, сам механизм реализации МП достаточно сложен и требует экспериментальной проверки. Указанные доводы определяют целесообразность применения имитационного моделирования как для определения  работоспособности и эффективности средств работы с МП, так и для целесообразности применения МП для конкретной ИС.

Формулирование целей статьи

Целью данной работы является создание имитационной модели для исследования различных механизмов реализации материализованных представлений, создаваемых для конкретной ИС.

Изложение основного материала статьи

В работе [2] изложены общие положения моделирования РБД. В нашем случае также необходимо сохранить исходное состояние базы данных (БД) или её фрагментов на момент t1 начала испытаний модели, сохранить последовательность запросов с момента t1, а также позаботиться о сокращении количества таблиц, используемых в модели.

Для этого воспользуемся аппаратом множеств [3] и введем следующее представление множества запросов Q, в котором каждый запрос представляется кортежем:

,                                                           (1)

где  – множество таблиц БД, участвующих в запросе q;  – количество таких таблиц.

Каждая таблица  представлена именем Nm и множеством полей , где  – количество полей таблицы .

 – тип запроса, , где  – запрос на удаление строки (строк) из таблицы, TI – запрос на добавление данных;  – запрос на обновление;  – запрос на выборку;

 – время запуска запроса;

 – продолжительность выполнения запроса, запущенного в момент времени .

Введём представление результатов выполнения запросов в виде множества:

,

где Ns – количество запросов типа SELECT.

Каждый элемент множества , где – таблица результата, а – момент времени получения результата.

I. Проверка работоспособности механизмов фильтрации запросов, выборки и обновления МП

Последовательность шагов:

1) Устанавливается длительность периода наблюдения t ИС. Для каждой таблицы БД сохраняется её состояние. В течение периода t (механизмы МП отключены) фиксируются все запросы к БД в соответствии с (1). Будем считать, что эти запросы составляют множество Q. Также фиксируются все результаты запросов типа SELECT (упорядоченное по времени множество R).

Предполагается, что к моменту начала испытания модели установлено множество всех запросов Qmps, для которых создаются МП.  Поскольку за время наблюдения t не обязательно все запросы из Qmps будут использованы, формируем множество запросов Qmp, имеющих МП и попадающих в нашу выборку:

                                                    (2)

  1. Для сокращения объёма модели и времени её испытания из Qmp выбирается незначительное количество запросов m (m³2, поскольку необходимо проверить механизм фильтрации запросов).

Минимизации количества таблиц, используемых в модели, можно добиться применением функции fmint(Qmp,m), которая из множества запросов Qmp выбирает такие m запросов, для которых общее число используемых таблиц будет минимальным. В результате формируется множество запросов Qmp1.

,                                                         (3)

Для проверки обработки запроса, который не принадлежит множеству Qmp, но имеет тип SELECT, отыскиваем такой запрос также с помощью функции fmint

fmint,                    (4)

Определяем множество таблиц T1, используемое запросами из Qmp1

,                                                        (5)

  1. Для проверки механизма обновления МП также необходимо выбрать все запросы, модифицирующие данные, используемые в МП. Для этого составляем множество запросов Qmd:

         (6)

Поскольку в условиях выборки запросов на модификацию могут присутствовать поля, которые не принадлежат таблицам из T1, окончательное множество таблиц, используемое в модели Tm, должно учитывать все таблицы, используемые в Qmd:

,                                             (7)

  1. На основе множества Tm создаётся модель БД1 реальной БД. Все таблицы Tm заполняются данными, сохраненными к моменту испытания модели.
  2. Производится упорядочение множества Qmd  по параметру . Механизм МП не включается. Запросы из Qmd последовательно подаются в модель БД1. Результаты выполнения запросов сохраняются в множестве R1.
  3. Восстанавливается исходное состояние модели БД1. Подключается механизм МП.

Запросы из Qmd повторно подаются в модель БД1. Результаты выполнения запросов сохраняются в множестве R2.

  1. Сравниваются результаты двух испытаний модели БД1. Если выполняются равенства  для всех и  при i=1,m+1, то можно сделать заключение о корректости работы механизмов МП и завершить испытания. В противном случае следует перейти к шагу 6.
  2. Прежде всего следует проверить совпадение результатов выполнения запросов типа SELECT в реальной базе данных (БД) и модели (БД1) без включения механизмов МП.

Если  при i=1,m+1 и j=1, |R|, то можно считать, что модель БД1 постоена правильно и ошибки вызваны применением механизма обслуживания МП.

Для дальнейшей локализации ошибок рекомендуется проверить работу механизма фильтрации запросов путем сравнения мощностей множеств R1и R2. Если фильтрация выполняется правильно, то следует детально проверить механизм обновления путём демонстрации каждого элемента после очередного обновления данных в его таблице.

II. Анализ эффективности применения МП

Последовательность шагов:

  1. Устанавливается длительность периода наблюдения t ИС. Для каждой таблицы БД сохраняется её состояние в модели БД1. В течение периода t (механизмы МП отключены) фиксируются все запросы к БД в соответствии с (1). Будем считать, что эти запросы составляют множество Q. С

Предполагается, что к моменту начала испытания модели установлено множество всех запросов Qmps, для которых создаются МП. 

  1. Определяется суммарное время выполнения всех запросов из множества Q:

                                                                                          (8)

Формируется множество запросов Qmp, имеющих МП и попадающих в нашу выборку (множество Q):

                                            (9)

Определяется суммарное время выполнения для каждого запроса, входящего в множество Qmp:

                                                 (10)

Определяется суммарное время выполнения всех запросов из множества Qmp:

,                                                                                  (11)

  1. Восстанавливается исходное состояние модели БД1. Включается механизм МП. На вход модели подаётся последовательность запросов из Q. Определяется суммарное время выполнения всех запросов из множества Q:

                                                               (12)

Определяется суммарное время выполнения для каждого запроса, входящего в множество Qmp:

                                                      (13)

Определяется суммарное время выполнения всех запросов из множества Qmp.

                                                                (14)

  1. Производится оценка полученных результатов по следующим формулам.

Для оценки общей эффективности применения МП в ИС:

                                                                      (15)

Для оценки эффективности применения МП для запросов из множества Qmp :

                                                                      (16)

Для оценки эффективности применения каждого МП в отдельности:

                                                                       (17)

Последняя оценка позволяет корректировать состав элементов множества Qmp.

III. Анализ эффективности механизма периодического включения МП [4]

Последовательность шагов:

1) Выполнение этого шага аналогично выполнению шагов 1 и 2 предыдущего анализа. В результате получаем суммарное время выполнения для каждого запроса, входящего в множество Qmp:

,                                                           (18)

                                                  (19)

2) Восстанавливается исходное состояние модели БД1. Включается механизм МП и устанавливается период включения/выключения МП для каждого запроса . Управление запросами осуществляется множеством функций:

                                                                     (20)

Каждая функция использует в качестве аргументов запрос  и заданный определённым образом период рабочего состояния МП. Конкретные моменты времени включения/выключения рассчитываются функцией на основании текущей даты календаря. Более подробное описание функции изложено в [4].

3) Аналогично пункту 3 предыдущего исследования на вход модели подаётся последовательность запросов из Q. Определяется суммарное время выполнения всех запросов из множества Q.

                                                                   (21)

Определяется суммарное время выполнения для каждого запроса, входящего в множество Qmp:

                                                      (22)

Определяется суммарное время выполнения всех запросов из множества:

                                                                            (23)

4) Выполняется анализ эффективности механизма управления запросами. Величина

                                                                               (24)

показывает относительное сокращение времени вполнения всех запросов за счет использования механизма управления.

Величина

                                                                            (25)

показывает насколько механизм управления влияет на эффективность выполнения запросов .

5) Выполняется анализ эффективности управления каждым запросом  по отдельности. Для этого рассчитываются значения:

                                                                                 (26)

6) На основании анализа, проведенного в пунктах 4 и 5 может быть принято решение о перенастойке функций из множества Fc. После этого процесс исследования повторяется, начиная с пункта 3 до фиксации оптимальных аргументов функций.

Если же принимается решение о добавлении или удалении элементов в множество Qmp, то процесс моделирования повторяется с начала.

7) Результаты, полученные в пунктах 3 и 4, могут сохраняться на длительный период для оценки влияния изменений в ИС на эффективность используемого механизма МП. Что даёт основание для повторного исследования системы и новой настойки механизмов МП.

Выводы

Предложенный метод построения имитационной модели РБД для исследования применимости МП, позволяет выполнить комплексный и детальный анализ как различных механизмов реализации МП, так и эффективности выбора запросов – кандидатов для МП и управления их включением/выключением. Кроме этого, реализуется возможность оценки влияния текущих изменений в ИС на эффективность применения МП и принятия своевременных решений по перенастойке механизма МП.

Список использованных источников

  1. Кунгурцев А. Б. Анализ возможности применения материализованных представлений в информационных системах / Кунгурцев А. Б., Куок Винь Нгуен Чан // Труды ОНПУ. – Одесса, 2003. – С. 102-106.
  2. Кунгурцев А.Б. Задачи имитационного моделирования реляционных баз данных / Кунгурцев А.Б., Зиноватная С.Л., Мунзер аль Абдо // Труды десятой международной научно-практической конференции СИЭТ-2009. – Одесса, 2010. – С.210.
  3. Певзнер Л.Д. Математические основы теории систем / Певзнер Л.Д., Чураков Е.П. – М.: Высш. шк., 2009. – 503с.
  4. Кунгурцев А.Б. Управление материализованными представлениями в информационных системах / Кунгурцев А.Б., Возовиков Ю.Н // Восточно-европейский журнал передовых технологий. – 2010. – № 1/ 4(43). – С. 18-21.
  5. Кунгурцев А.Б. Поиск закономерностей в распределении запросов для управления материализованными представлениями / Кунгурцев А.Б., Возовиков Ю.Н. // Труды Одесского политехн. ун-та. – Одесса, 2008. – № 2(30). – С. 135-140.