Другие журналы
|
научное издание МГТУ им. Н.Э. БауманаНАУКА и ОБРАЗОВАНИЕИздатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211. ISSN 1994-0408![]()
77-30569/296143 Оценка времени выполнения SQL-запросов к базам данных
# 01, январь 2012
Файл статьи:
![]() УДК 004.657 МГТУ им. Н.Э. Баумана Введение В некоторых работах [1, 5, 6] для нахождения коэффициентов аналитических выражений, используемых для оценки времени выполнения запросов к базам данных, предлагается использовать калибровочную модель, представляющую собой определённую БД, набор запросов, а также аппаратно-программный комплекс, на котором выполняются калибрующие эксперименты. Предлагаемые аналитические выражения необходимо строить для каждой конфигурации аппаратно-программных средств. Более того, эти выражения не отражают особенностей выполнения сложных запросов SQL. Для проведения расчётов вводятся некоторые сложные интегрированные параметры, при этом не совсем понятна их природа и не указывается, как можно оценить эти параметры. В работах [2, 7, 8] предлагаются методы оценки стоимостных характеристик различных способов соединения таблиц (NLJ, SMJ, HJ), используемых при выполнении запросов к базе данных. К сожалению, здесь не учитывается случайных характер параметров соединяемых таблиц. Т. е. расчёты ведутся на уровне средних значений. В этих работах также не показано, как можно получить исходные данные для расчётов характеристик соединения промежуточных таблиц, получаемых при реализации оптимального плана выполнения исходного запроса к базе данных. В данной работе разрабатывается новый математический аппарат анализа времени выполнения запросов SELECTк распределённой базе данных, учитывающий механизмы декомпозиции сложных запросов на подзапросы и соединения результатов их выполнения, параметры логической схемы и случайную природу характеристик наполнения базы данных. Предлагаемый подход можно использовать на ранних этапах проектирования баз данных для оценки временных характеристик выполнения запросов различной степени сложности на различных аппаратно-программных платформах. При этом оценки получаются в виде преобразований Лапласа-Стилтьеса, что позволяет оценивать не только средние величины, но и дисперсии, а также моменты более высоких порядков.
1. Организация обработки запросов SQL С точки зрения программистов распределённая база данных – это большая виртуальная БД. Оптимизатор запросов (планировщик запросов) СУБД автоматически выполняет декомпозицию запроса на подзапросы и организует их выполнение. При этом оптимизатор выполняет следующие шаги: 1. Исходный запрос преобразуется в формулу реляционной алгебры (явно или нет). Известно, что оператор SELECT языка SQL может быть представлен в виде следующей формулы реляционной алгебры [4]: πA (σF ( R1 ´ R2 ´ ... ´ Rn )), (1) где ( R1´R2´ ... ´ Rn ) – декартово произведение отношений (таблиц), указанных за ключевым словом FROM оператора SELECT,σF– операция селекции кортежей декартова произведения в соответствии с условием F, указанным за ключевым словом WHERE, πA– проекции селекции на множество атрибутов А, которые перечисляются за ключевым словом SELECT. 2. Эта формула подвергается оптимизатором улучшению. Смысл улучшения заключается в перемещении операций селекции и проекции внутрь декартова произведения с использованием законов реляционной алгебры и некоторых правил, сформулированных в [4]. В результате формула (1) преобразуется к виду:
Здесь 3. В зависимости от настроек, сделанных проектировщиком, оптимизатор использует один из следующих методов построения оптимального плана выполнения запроса на основе формулы, полученной на шаге 2: продукционная или стоимостная оптимизация. 4. При формировании оптимального плана на шаге 3 оптимизатор выбирает метод соединения таблиц. В основном используются следующие методы: соединение с помощью вложенных циклов (NLJ - Nested Loop Joins), соединение посредством сортировки-слияния (SMJ- Sort-Merge Join), хешированное соединение (HJ - Hash Joins), кластерное соединение. Из выражений (1) и (2) следует, что описание запроса к базе данных и, следовательно, время его выполнения зависят от схемы базы данных. Из анализа работы оптимизаторов следует [3], что построение оптимального плана сводится, в основном, к определению последовательности выполнения соединений промежуточных таблиц, полученных при выполнении подзапросов:
здесь 1. Пусть 2.
4.
5. Далее будем использовать преобразование Лапласа-Стилтьеса (Л.-С.) функции распределения случайного времени:
где 6.
где
где
2. Оценка времени обработки подзапросов Этот раздел написан в соавторстве с Плутенко А.Д. Найдём преобразование Л.-С. времени чтения блоков индексов по тем атрибутам из Лемма 1. Преобразование Л.-С. времени чтения блоков нижнего уровня по всем используемым в подзапросе
здесь Если множество элементов
где
В противном случае необходимо определить произведение выражений (7), которые соответствуют участкам смежных значений атрибутов в множестве
В частности из (8) следует, что если вероятности
где
Таблица 1
Здесь Следует отметить, что
здесь Лемма 2. Преобразование Л.-С. времени чтения блоков таблицы
где Если записи, удовлетворяющие условию поиска
здесь Теорема 1. Для преобразования Л.-С. времени выполнения подзапроса
где Утверждение теоремы 1 следует из формул (6) и (11), являющихся утверждениями лемм 1 и 2, и свойств преобразования Л.-С..
3. Рекуррентная формула для определения производящей функции числа кортежей соединяемых таблиц Соединение промежуточных таблиц Соединение является рекуррентной математической процедурой: 1. Найти производящую функцию числа записей и множество атрибутов для каждой из двух соединяемых таблиц. 2. Для каждого атрибута Сначала покажем, как указанные выше задачи 1 и 2 решаются для соединяемых таблиц 1. Производящая функция для числа записей определяется выражением (10), а множество атрибутов совпадает с 2. Представим условие а) если атрибут входит во все конъюнкты дизъюнктивной формы, то в этом случае полагаем
б) иначе домен атрибута оставляем без изменения (как в таблице Если домен атрибута изменился (см. (14)), то необходимо выполнить "нормирование" вероятностей элементов нового домена
Покажем теперь, как 1) найти производящую функцию числа записей в промежуточной таблице 2) определить домены Без потери общности будем считать, что соединяются таблицы В дальнейшем под соединяемыми записями таблиц Лемма 4. Пусть количества кортежей в разных группах соединяемых записей таблиц 1. Производящая функция числа записей в таблице
где
Множество атрибутов таблицы 2. Для доменов атрибутов связи
Вероятности появления элементов доменов
Домены остальных атрибутов таблицы
4. Оценка времени выполнения соединения таблиц В этом разделе выводятся преобразования Л.-С. времени соединения
4.1. Метод соединения с помощью вложенных циклов NLJ Теорема 2. Преобразование Л.-С. времени
где
4.2. Метод соединение посредством сортировки-слияния SMJ Сначала таблицы Лемма 5. Пусть число перемещений записей на
здесь Теперь найдём производящую функцию числа сравнений атрибутов связи соединяемых таблиц Лемма 6. Производящая функция количества сравнений атрибутов связи при соединении таблиц
здесь
Теорема 3. Преобразование Л.-С. времени
4.3. Метод хешированного соединения HJ В процессе хешированного соединения выполняются следующие шаги: 1. Выбирается хеш-функция. 2. Записи соединяемых таблиц 3. Для каждого раздела с помощью метода SMJ или NLJ выполняется соединение таблиц соответствующих таблиц: 4. Объединяются результаты соединений, выполненных на шаге 3: В качестве хеш-функции можно выбрать, например, деление по модулю 10 значений атрибутов связи. В этом случае число разделов Лемма 7. Справедливы следующие утверждения: 1. Производящая функция числа записей в таблице
здесь 2. Домен атрибута связи
Вероятности появления элементов доменов
здесь в правой части Домены остальных атрибутов таблицы Теорема 4. Преобразование Л.-С. времени
где Доказательство теоремы 4 следует из описания алгоритма хешированного соединения, леммы 7 и свойств преобразования Л.-С.
5. Оценка времени выполнения исходного запроса SQL На основании результатов, сформулированных в предыдущих разделах, можно получить преобразование Л.-С. времени выполнения исходного запроса (3). Теорема 5. Преобразование Л.-С. времени выполнения исходного запроса (3) имеет следующий вид:
где Доказательство теоремы 5 следует из свойств преобразования Л.-С. и теорем 1, 2, 3, 4, приведённых в предыдущих разделах. Используя выражение (27), можно оценивать различные моменты (среднее, дисперсию и др.) времени выполнения запросов SQL. Важно подчеркнуть, что полученные выражения для преобразований Л.-С. времени выполнения подзапросов (13) и соединений (19), (22), (26), а также для производящих функций числа кортежей в исходных и результирующих таблицах (см. формулы (10) и (16)) могут быть использованы не только для расчёта характеристик времени выполнения запросов SQL (27), но и для оценки параметров функций распределений при подготовке исходных данных моделей массового обслуживания, которые часто используются для анализа показателей качества распределённых систем обработки данных на макроуровне. Предложенный математический аппарат был использован при разработке Комплекса инструментальных Средств Анализа Моделей доступа к базам данных распределённых систем обработки данных (КСАМ). Этот комплекс относится к классу экспертных систем и предназначен для проведения вычислительных экспериментов с целью анализа временных показателей систем, основу которых составляют распределённые базы данных и приложения.
СПИСОК ЛИТЕРАТУРЫ1. WeiminDu, RaviKrishnamurthy, Ming-ChienShan. Query Optimization in a Heterogeneous DBMS // Proceedings of 18th International Conference on Very Large Data Bases, August 23-27, 1992, Vancouver, Canada. - P. 277-291. 2. Goetz Graefe. Query Evaluation Techniques for Large Databases // ACM Computing Surveys. - 1993. - Vol. 25, № 2. - P. 73-170. 3. Чаудхари С. Методы оптимизации запросов в реляционных системах // Системы управления базами данных. - М., 1998. - № 3. - С. 22-36. 4. Ульман Дж. Основы систем баз данных. – М.: Финансы и статистика, 1983. – 334 с. 5. Georges Gardarin, Jean-Robert Gruser, Zhao-Hui Tang. Cost-based Selection of Path Expression Processing Algorithms in Object-Oriented Databases // Proceedings of 22th International Conference on Very Large Data Bases (VLDB'96), September 3-6, 1996, Mumbai (Bombay), India. - P. 390-401. 6. G. Gardarin, F. Sha, and Z.-H. Tang. Calibrating the query optimizer cost model of IRO-DB, an objectoriented federated database system // Proceedings of 22th International Conference on Very Large Data Bases (VLDB'96), September 3-6, 1996, Mumbai (Bombay), India. - P. 378--389. 7. Mishra P., Eich M.H. Join Processing in relational databases. // ACM Computing Surveys. - 1992. - Vol. 24, № 1. 8. E. P. Harris, K. Ramamohanarao. Join algorithm costs revisited // The VLDB Journal. - 1996. - Vol. 5, № 1. - P. 64--84. Публикации с ключевыми словами: база данных, преобразование Лапласа-Стилтьеса, оптимизация оператора SELECT, запрос SQL, время выполнения запроса, производящая функция Публикации со словами: база данных, преобразование Лапласа-Стилтьеса, оптимизация оператора SELECT, запрос SQL, время выполнения запроса, производящая функция Смотри также: Тематические рубрики: Поделиться:
|
|
||||||||||||||||||||||||||||||||||||||||
|