Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Карты выполнения транзакций




Этап 5.1. Анализ транзакций

Цель Определение функциональных характеристик транзакций, которые будут выполняться в проектируемой базе данных, и выделение наиболее важных из них.

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

· Ожидаемая частота выполнения транзакций.

· Отношения и атрибуты, к которым потребуется иметь доступ при выполнении транзакции, а также тип этого доступа (выборка, вставка, обновление или удаление).

o Для транзакций обновления необходимо установить атрибуты, значения которых будут обновляться, поскольку следует избегать использования этих атрибутов в структурах доступа (например, во вторичных индексах).

· Атрибуты, используемые хотя бы в одном из предикатов. (В языке SQL предикатами называют условия, задаваемые в предложениях WHERE.) Проверьте, используются ли в предикатах шаблоны подстановки, поиск в пределах заданного диапазона или выборка по точному соответствию ключа.

o Все найденные атрибуты будут кандидатами на включение в структуры доступа.

· Атрибуты, которые при выполнении запросов будут использоваться для соединения двух или больше отношений.

o Эти атрибуты также являются кандидатами на включение в структуры доступа.

· Ограничения, устанавливаемые на время выполнения транзакций. (Например, может существовать требование, что некоторая транзакция всегда должна завершаться в течение одной секунды.)

o Атрибуты, используемые в любых предикатах критических по времени выполнения транзакций, имеют наивысший приоритет для включения в состав структур доступа.

Во многих случаях проанализировать все ожидаемые транзакции просто невозможно, поэтому необходимо тем или иным образом выбрать из них самые "важные". Существует эмпирическое правило, согласно которому выполнение около 20% наиболее активных запросов пользователей порождает примерно 80% общей нагрузки на базу данных. Это правило "80/20" может использоваться как рекомендация по проведению анализа. Для определения того, какие из транзакции подлежат детальному анализу, воспользуемся картой выполнения транзакций. Она показывает, какие именно отношения используются для выполнения каждой транзакции, что позволяет сделать заключение о том, какие из отношений будут использоваться наиболее интенсивно. Для выделения областей, которые потенциально могут явиться источником проблем, необходимо выполнить следующее:

· подготовить схему, отражающую используемые отношения и путь выполнения всех транзакций;

· установить, какие из отношений наиболее интенсивно используются при выполнении транзакций;

· детально проанализировать некоторые из транзакций, использующих эти отношения.

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

A. Ввод (вставка) подробных сведений о новом работнике указанного отделения компании.

B. Составление списка сдаваемых в аренду объектов, за которые отвечает каждый из работников указанного отделения компании.

C. Назначение работника ответственным за некоторый сдаваемый в аренду объект, если этот работник еще не отвечает за десять объектов.

D. Составление списка сдаваемых в аренду объектов, закрепленных за указанным отделением компании.

На рис. 9.2, а указано ожидаемое количество строк в отношениях Staff, Branch и Property_for Rent, а также средняя и максимальная кратности каждой из связей между этими отношениями. Например, ожидается, что персонал компании составит около 1500 человек, работающих в 50 отделениях, в каждом из которых трудятся в среднем по 30 работников. Результаты отображения на этой диаграмме путей выполнения транзакций от А до D показаны на рис. 9.2, б. Построенная карта выполнения транзакций показывает, что чаще всего используются отношения Property_for_Rent и Staff, поэтому целесообразно провести тщательный анализ только тех транзакций, которые включают обращения к этим отношениям.

При анализе каждой из транзакций очень важно знать не только среднее и максимальное количество ее вызовов в час, но и иметь сведения о тех днях недели и часах суток, когда она обычно выполняется, включая и данные о времени пиковой нагрузки. Например, частота вызова некоторых транзакций может удерживаться на среднем уровне постоянно, но все же имеет четко выраженный пик нагрузки в каждый четверг с 14.00 до 16.00, вызванный подготовкой отчетов, сдаваемых в пятницу утром. Другие транзакции вообще могут выполняться только в определенные моменты времени — например, по понедельникам с 9.00 до 10.00, — что также будет представлять собой пик нагрузки.

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

При выполнении анализа транзакции устанавливается способ доступа к каждому из отношений. Например, фиксируется его тип; вставка (insert, I), чтение (read, R), обновление! (update, U) или удаление (delete, D), а также имена атрибутов, используемых для получения доступа. В совокупности эти сведения называются "точкой входа" ("entry point", E). Мы предполагаем, что все транзакции могут получить прямой доступ к требуемому отношению посредством предоставления значений указанных атрибутов. Транзакции, которые вызывают сканирование нескольких записей, отмечаются "звездочками". Везде, где выполняется подобное сканирование, необходимо указать, сколько раз при выполнении одной и той же транзакции потребуется получить доступ к определенным отношениям. Эти значения представляют собой среднюю и максимальную кратности используемых связей..При каждом обновлении доступ к отношению производится дважды: один раз — для чтения и другой раз — собственно для обновления. В большинстве случаев нет необходимости указывать все атрибуты каждого из отношений, но обязательно требуется отметить те атрибуты, которые используются при последовательном получении доступа к другим отношениям. Результаты анализа для каждой из выбранных транзакций приведены ниже, в табл7. 9.1-9.3.





Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 601; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.