электронное научно-техническое из д а н ие
НАУКА и ОБРАЗОВАНИЕ
Эя №ФС 77 - 305Б9. Государственная регистрация №0421100025. ISSN 1994-0405_
Оценка времени выполнения SQL-запросов к базам данных 77-30569/296143
# 01, январь 2012 Григорьев Ю. А.
УДК 004.657
МГТУ им. Н.Э. Баумана [email protected]
Введение
В некоторых работах [1, 5, 6] для нахождения коэффициентов аналитических выражений, используемых для оценки времени выполнения запросов к базам данных, предлагается использовать калибровочную модель, представляющую собой определённую БД, набор запросов, а также аппаратно-программный комплекс, на котором выполняются калибрующие эксперименты. Предлагаемые аналитические выражения необходимо строить для каждой конфигурации аппаратно-программных средств. Более того, эти выражения не отражают особенностей выполнения сложных запросов SQL. Для проведения расчётов вводятся некоторые сложные интегрированные параметры, при этом не совсем понятна их природа и не указывается, как можно оценить эти параметры.
В работах [2, 7, 8] предлагаются методы оценки стоимостных характеристик различных способов соединения таблиц (NLJ, SMJ, HJ), используемых при выполнении запросов к базе данных. К сожалению, здесь не учитывается случайных характер параметров соединяемых таблиц. Т. е. расчёты ведутся на уровне средних значений. В этих работах также не показано, как можно получить исходные данные для расчётов характеристик соединения промежуточных таблиц, получаемых при реализации оптимального плана выполнения исходного запроса к базе данных.
В данной работе разрабатывается новый математический аппарат анализа времени выполнения запросов SELECT к распределённой базе данных, учитывающий механизмы декомпозиции сложных запросов на подзапросы и соединения результатов их выполнения, параметры логической схемы и случайную природу характеристик
наполнения базы данных. Предлагаемый подход можно использовать на ранних этапах проектирования баз данных для оценки временных характеристик выполнения запросов различной степени сложности на различных аппаратно-программных платформах. При этом оценки получаются в виде преобразований Лапласа-Стилтьеса, что позволяет оценивать не только средние величины, но и дисперсии, а также моменты более высоких порядков.
1. Организация обработки запросов SQL
С точки зрения программистов распределённая база данных - это большая виртуальная БД. Оптимизатор запросов (планировщик запросов) СУБД автоматически выполняет декомпозицию запроса на подзапросы и организует их выполнение. При этом оптимизатор выполняет следующие шаги:
1. Исходный запрос преобразуется в формулу реляционной алгебры (явно или нет). Известно, что оператор SELECT языка SQL может быть представлен в виде следующей формулы реляционной алгебры [4]:
па (Of( Ri х R2 х ... х Rn )), (1)
где ( Ri х R2 х ... х Rn ) - декартово произведение отношений (таблиц), указанных за ключевым словом FROM оператора SELECT,Of - операция селекции кортежей декартова произведения в соответствии с условием F, указанным за ключевым словом WHERE, Па - проекции селекции на множество атрибутов А, которые перечисляются за ключевым словом SELECT.
2. Эта формула подвергается оптимизатором улучшению. Смысл улучшения заключается в перемещении операций селекции и проекции внутрь декартова произведения с использованием законов реляционной алгебры и некоторых правил, сформулированных в [4]. В результате формула (1) преобразуется к виду:
(па (^F (r)) х пАл OF2 (r2)) х •••))
(2)
Здесь F = F and F and... and Fn, F — исходное условие поиска в формуле
л
(1), F — условие соединения результатов выполнения подзапросов
Qi — п ,л (рf (R)), F; — условие поиска в i-ом подзапросе. Подчёркнутые в (2)
Ai '
элементы (подзапросы) имеют меньшую размерность, чем исходные отношения Ri и
R2.
3. В зависимости от настроек, сделанных проектировщиком, оптимизатор использует один из следующих методов построения оптимального плана выполнения запроса на основе формулы, полученной на шаге 2: продукционная или стоимостная оптимизация.
4. При формировании оптимального плана на шаге 3 оптимизатор выбирает метод соединения таблиц. В основном используются следующие методы: соединение с помощью вложенных циклов (NLJ - Nested Loop Joins), соединение посредством сортировки-слияния (SMJ- Sort-Merge Join), хешированное соединение (HJ - Hash Joins), кластерное соединение.
Из выражений (1) и (2) следует, что описание запроса к базе данных и, следовательно, время его выполнения зависят от схемы базы данных. Из анализа работы оптимизаторов следует [3], что построение оптимального плана сводится, в основном, к определению последовательности выполнения соединений промежуточных таблиц, полученных при выполнении подзапросов:
Q— Qj х Q2 х...X Qin (3)
здесь Qi - промежуточная таблица, полученная при выполнении соответствующего
подзапроса. Эти таблицы будем обозначать так же, как и подзапросы (см. (2)), Q - результирующая таблица, которая соответствует исходному запросу к базе данных. Из (3) следует, что оценка времени выполнения запроса сводится к получению оценок времени обработки подзапросов Q^ и построению рекуррентной математической процедуры оценки времени выполнения соединений. Введём некоторые обозначения.
1. Пусть A; - множество атрибутов таблицы (отношения) R, которые входят в
условие (предикат) F' i-го подзапроса в (2), ' — 1,n. В общем случае на атрибуты A в условии поиска F' накладываются ограничения, которые могут изменяться при разных
Dj
Ijj - мощность
обращениях к запросу. aj - атрибут из множества Aj, т. е. A = {^j}j. По определению {aj\j = {ai\,aH,.\ .
2. \bjk\k - те значения атрибута aj, которые удовлетворяют соответствующему элементарному условию по aj в предикате Fj. Ясно, что \bjk\k — Dj = {djm}m, где
Dj - домен (множество значений) атрибута aj в таблице Rj. домена. Далее будем использовать следующее множество:
Mj = {m|djm — {bjk\k) , (4)
4. Пут - вероятность, что атрибут aj какого-нибудь кортежа (записи) таблицы
\Dj\
Rj принимает значение djm, = 1. Вероятности rjjm можно задать априори
m=1
или получить из гистограмм, которые могут быть построены утилитой СУБД сбора статистик. Для записей из таблиц {Rj} будем считать независимыми в совокупности события
{aj = djm}jm (5)
5. Далее будем использовать преобразование Лапласа-Стилтьеса (Л.-С.) функ-
X
ции распределения случайного времени: ¥(s) = Je st dF(t) (или просто преобразова-
0
ние Л.-С. времени). Для Л.-С. справедливо равенство:
¥(n) (0) = (—1)nM(%n),
где ¥(n)(0) - n-ая производная ¥(s) при s= 0, M(%n) - n-ый начальный момент
2 2
случайной величины %. Например, M(%) - это среднее значение, M(% ) — M (%) -дисперсия и т. д.
6. Су(^) - производящая функция числа записей в таблице Ку. Производящая функция дискретной случайной величины ^ с целыми неотрицательными значениями определяется следующим выражением:
ж ж
Г(У = 1 рУ, £Р =1,
1=0 1=0
где Р1 - вероятность, что случайная величина ^ равна 1. Имеют место равенства
г(1) (1) = ы(4), г(2) (1) = ы(%2) - ы(4), г(п) (0) = п.рп ,
где Г(п)(у) - п-ая производная Г(У) в точке У.
2. Оценка времени обработки подзапросов
Этот раздел написан в соавторстве с Плутенко А.Д. Найдём преобразование Л-С. времени чтения блоков индексов по тем атрибутам из Л, для которых при выполнении подзапроса ((из (2) используются индексы.
Лемма 1. Преобразование Л.-С. времени чтения блоков нижнего уровня по всем используемым в подзапросе (( индексам таблицы К равно:
гу(*) = Ш)Щ($>)' (6)
здесь Ч - множество тех атрибутов из Л, для которых при выполнении подзапроса С используются индексы, 8 у(Б) - преобразование Л.-С. времени чтения одного блока нижнего уровня индекса по атрибуту а у, &у(2)) - производящая функция читаемых блоков индекса по атрибуту а у.
Если множество элементов \^ут\т м домена ^Упосле упорядочивания образуют последовательность смежных значений, то
У) = 2 РцУ, (7)
к
где Pj0 = Щj(0), Pjk
kQj
z -
l= (k—1)qj+1
Wjl}(0)
k> 1,
Wjj(z) = Gj(1 — Znjm(1 — Z),
maM:,
ijm\
д^- максимальное число записей в блоке нижнего уровня индекса по атрибуту
В противном случае необходимо определить произведение выражений (7), которые соответствуют участкам смежных значений атрибутов в множестве \dijm} .
Найдём теперь преобразование Л.-С. времени чтения блоков таблицы ^ с записями, удовлетворяющими условию поиска Fi. Но, прежде всего, определим рекуррентную процедуру расчёта вероятности Xi, что произвольная запись таблицы ^ удовлетворяет условию поиска F'. Вероятность, что запись таблицы ^ удовлетворяет элементарному условию поиска по атрибуту aj в предикате F', можно определить с помощью следующего выражения:
xj = Zn
те Mit
jjm
(8)
В частности из (8) следует, что если вероятности Tjjin одинаковы, то
Xj
m\
Dj
(9)
где
Mj
мощность множества Mj■(см. (4)), а Dj - мощность домена Dj. Элемен-
j
у
тарные условия по атрибутам {aj} ■ в Fj могут быть связаны различными логическими условиями: AND, OR и может быть NOT. Для расчёта вероятности Xj можно воспользоваться рекуррентной процедурой, которая описана в виде табл. 1.
Таблица 1
Условие Вероятность
усл.3 = усл.1 AND усл.2 русл.3 = русл\ ' русл2
усл.3 = усл.1 OR усл.2 русл3 = русл1 + русл2 - русл.1 ' русл2
усл.2 = ШТ(усл.1) русл2 = 1 - русл1
Здесь Русл. 1, Русл.2, Русл.3 - это вероятности, что запись таблицы Ку удовлетворяет соответствующему условию. Первоначально "усл.1" и "усл.2" в правой части равенств первого столбца табл. 1 - это элементарные условия в /у, а Рулл1 и Русл2 -это вероятности, вычисляемые с помощью выражения (8).
Следует отметить, что Ху не зависит от числа записей Чв таблице Ку, т. к. от N не зависят вероятности Ху (см. (8)). Применяя схему Бернулли с параметром Ху и используя формулу полной вероятности, найдём производящую функцию числа записей таблицы Ку, удовлетворяющих условию поиска /у:
Ц(*) = 2Рч(1 - Ху(1 - У))4 = Оу(1 - Ху(1 - У)), (10)
N
здесь %у - вероятность, которая определяется с помощью описанной выше рекуррентной процедуры (см. табл. 1), бу(У) - производящая функция числа записей в таблице
Ку.
Лемма 2. Преобразование Л.-С. времени чтения блоков таблицы Ку с записями, удовлетворяющими условию поиска /у, имеет вид
Ф) = Уу(Ру^)), (11)
где Ру(£) - преобразование Л.-С. времени чтения одного блока таблицы Ку, /у(У) -производящая функция читаемых блоков таблицы Ку.
Если записи, удовлетворяющие условию поиска /у, располагаются в блоках таблицы Ку последовательно (в соседних строках), то
Yi(z) = Р£(0) ( Е ^Л2)^, (12)
к=1 1= (к-1)г+1 1
здесь определяется выражением (10), г,- максимальное число записей в блоке
таблицы К,. В общем случае, если записи, удовлетворяющие условию поиска F', не располагаются в блоках таблицы К, последовательно (в соседних строках), то производящую функцию читаемых блоков таблицы К, можно найти с помощью произведения выражений вида (12), которые соответствуют участкам с последовательным размещением записей в блоках.
Теорема 1. Для преобразования Л.-С. времени выполнения подзапроса (( справедливо следующее выражение:
т=гш$) п (13)
^ N
где N - множество тех атрибутов из А,, для которых при выполнении подзапроса ((, используются индексы, 5 у(Б) - преобразование Л.-С. времени чтения одного блока нижнего уровня индекса по атрибуту а у, &у(я) - производящая функция читаемых блоков индекса по атрибуту Зу, которая определяется выражением (7), -преобразование Л.-С. времени чтения одного блока таблицы К,, /у(^) - производящая функция читаемых блоков таблицы К,, которая определяется выражением (12).
Утверждение теоремы 1 следует из формул (6) и (11), являющихся утверждениями лемм 1 и 2, и свойств преобразования Л.-С..
3. Рекуррентная формула для определения производящей функции числа кортежей соединяемых таблиц
Соединение промежуточных таблиц {(} выполняется попарно в последовательности, определённой при построении оптимального плана (см. (3)).
Соединение является рекуррентной математической процедурой:
(:= (X ((,, к= 2,п. Первоначально (= (у . Далее без потери общности будем
считать, что у = к. Будем также полагать, что А = {&■}■ - это множество всех атрибутов какой-нибудь соединяемой таблицы. Для оценки времени соединения таблиц (раздел 4) на каждом шаге рекуррентной процедуры необходимо выполнить следующие действия:
1. Найти производящую функцию числа записей и множество атрибутов для каждой из двух соединяемых таблиц.
2. Для каждого атрибута а у соединяемых таблиц определить его домен
= {¿ут\т и вер°ятности \цут\т
Сначала покажем, как указанные выше задачи 1 и 2 решаются для соединяемых таблиц {ф} , которые соответствуют подзапросам.
1. Производящая функция для числа записей определяется выражением (10), а
л
множество атрибутов совпадает с А (см. (2)).
2. Представим условие В в виде дизъюнктивной формы. Домен Оу атрибута а у в таблице фу определим следующим образом:
а) если атрибут входит во все конъюнкты дизъюнктивной формы, то в этом случае полагаем
О = кут}т = \dijm 1 ■ * Ы , (14)
{¿Укк - это те значения атрибута Зу, которые удовлетворяют элементарному условию по Зу в конъюнкте с номером е,
б) иначе домен атрибута оставляем без изменения (как в таблице Ку ).
Если домен атрибута изменился (см. (14)), то необходимо выполнить "нормирование" вероятностей элементов нового домена Оу:
Пут
пт := т=1,ву (15)
ЪЛук
к=1
Покажем теперь, как
1) найти производящую функцию числа записей в промежуточной таблице (:= (х (к, которая, в свою очередь, может соединяться с таблицей (к+1, а также множество атрибутов в таблице (,
2) определить домены А у = \ёущ}т атрибутов а у, добавленных в таблицу (
в результате соединения, и вероятности {Пцш}т.
Без потери общности будем считать, что соединяются таблицы (( и (, т. е. (:= ( ^^ (2, т. к. далее рекуррентно можно положить (( := ( и (2 := (к, к= 3 ,п. Рассмотрим общий случай соединения таблиц по нескольким атрибутам. Без потери общности будем считать, что таблицы (1 и (2 соединяются соответственно по атрибутам {ац,.. .,3^} и З21,...,а2Б} . Пусть р - условие связи между этими группами атрибутов.
В дальнейшем под соединяемыми записями таблиц (( и (2 будем понимать записи этих таблиц, в которых значения атрибутов связи {Зц = dllщ е Г)ц,...,
а1г = ^гтг е Пг} и { 321 = d21/1 е Аь- 32б = е П2б} связаны отношением
р, т. е. {ёПщ ,---^1гт } р {d2ll ,...^281 }, где р - условие связи таблиц (( и (2
по атрибутам связи {ац,...,3^} и {321,.■ •,32Б} (=, <, ^, >, ^, ^ или более сложное условие). Под группой соединяемых записей будем понимать совокупность соединяемых записей таблицы (( (или (), в которых атрибуты связи {ац,.. .,3^} (или
{а21,.,а2Б} ) принимают одинаковые значения, т. е. имеют одинаковые подстроки в
соответствующей таблице.
Лемма 4. Пусть количества кортежей в разных группах соединяемых записей таблиц (( и ( независимы в совокупности. Тогда справедливы следующие утверждения:
1. Производящая функция числа записей в таблице (:= ( X (2 имеет следующий вид:
Уф(4 = 2П (1 - П■ (1
N т =1 т, =1 |=1
4 г J (16)
- (1 - 2 п П21у(1 - z))N))),
(7ь...,4)еХт1...т, М
У^(0)
где p2N =-~— - вероятность, что число записей в таблице фф равно N (см.
свойства производящей функции в разделе 1),
Уг{2) - производящая функция числа записей таблицы фф, У(^) - производящая функция числа записей таблицы ((,,
Ьщ тг = (/Ь. • -Л 1 {^11т } Р {^2Ц }), Р - это отноше-
ние связи таблиц ф и ( по атрибутам связи {зц,...,3,} и Я21,.. .,328} (=, <, <, >, >, Ф или более сложное условие).
Множество атрибутов таблицы ф равно Аф = А Ы А, где А и А - множества атрибутов таблиц ф и ф2.
2. Для доменов атрибутов связи {зц,. .., а,} и {321,.,328} , вошедших в ф, справедливы следующие выражения:
. — (17)
О2| = \Зт,.~,тг,11,.~,1М,1М1,.~,1(
{ёПт V• ^с/,тг} р {^2111 })), ■=1,8
Вероятности появления элементов доменов О^у и О у в кортежах таблицы ф равны
■= ОМ, т= 1,|д| ■= и, (18)
2П1ук
к=1
П211:= 1= 1,D2j , j= 1,Б
Еп2кк
к=1
Домены остальных атрибутов таблицы ( и вероятности появления элементов этих доменов в кортежах ( не изменяются.
В этом разделе выводятся преобразования Л.-С. времени соединения (= ( ^^ (2, которое может быть выполнено оптимизатором с помощью одного из
методов, указанных в разделе 1. Производящие функции Ц(я) и V2() числа записей в соединяемых таблицах (( и ( были получены в разделах 2 и 3 (см. формулы (10) и (16)). Производящая функция числа записей (()) в таблице (= ( X (2 была получена в разделе 3 (см. рекуррентную формулу (16)).
4.1. Метод соединения с помощью вложенных циклов NLJ
Теорема 2. Преобразование Л.-С. времени Сц выполнения соединения таблиц (( и (2 методом N1^ имеет вид:
где \{(), , (() - производящие функции числа записей в таблицах ((, (2 и
(= ( ^^ (2, ^с(б) - преобразование Л.-С. времени сравнения атрибутов связи двух кортежей из (( и (2, ^/(Б) - преобразование Л.-С. времени соединения двух кортежей из (( и (.
4.2. Метод соединение посредством сортировки-слияния SMJ
Сначала таблицы (( и (2 при необходимости сортируются по атрибутам связи, а затем выполняется их соединение. Предположим, что сортировка выполняется в порядке возрастания атрибута связи и элементы домена этого атрибута также упорядоче-
4. Оценка времени выполнения соединения таблиц
(19)
ны в порядке возрастания: d1i2< ••• < d^ , здесь 1ц - мощность домена D1,
i = 1,2. Также предположим, что сортировка выполняется обычным способом: путём
перемещения влево k-ои записи внутрь уже упорядоченных к-1 записеИ (пузырьковый способ).
Лемма 5. Пусть число перемещений записей на к-ом шаге не зависит от числа перемещений на предыдущих шагах. Тогда производящая функция числа перемещений при сортировке записей таблицы Qi по атрибуту связи Яц имеет вид
N Iii Iii
Hii(z) = 2ршП(Z (лл - ЕШ - z))k-1)), (20)
N k=1 m=i l=m+i
здесь Pnn - вероятность, что количество записей в таблице Qi равно N.
Теперь найдём производящую функцию числа сравнений атрибутов связи соединяемых таблиц Qi и Q2 •
Лемма 6. Производящая функция количества сравнений атрибутов связи при соединении таблиц Qi и Q2 имеет следующий вид:
EZ = V(i - ТтЛ - Z) - V2(i - 2>2im(i - Z), (21)
m=1 m=1
здесь
Ii = max m, Mi = {m| dm ^ d}, i= 1,2, d= min max
meMi i=1,2 m
V(Z - производящая функция числа записей в таблице Qi, i = 1,2 (см. формулы (10) и (16)).
Теорема 3. Преобразование Л.-С. времени U выполнения соединения таблиц Q и Q2 методом SMJ имеет вид:
^ (Б) = [#и№<5))] - №№(*))] - E(Wc(s)) - Vq(4j(s)), (22)
HA(z) - производящая функция числа перемещений при сортировке записей таблицы Qi по атрибуту связи Яц, которая определяется выражением (20), i = 1,2, E(z) - производящая функция количества сравнений атрибутов связи при соединении
таблиц ф и ф2, которая определяется выражением (21), Уф(^) - производящая функция числа записей в таблице ф= ф X ф (см. формулу (16)), ^^(8) - преобразование Л.-С. времени перемещения двух кортежей при сортировке таблиц ф и ф, ^^(8) - преобразование Л.-С. времени сравнения атрибутов связи двух кортежей из ф и ф, ^^(8) - преобразование Л.-С. времени соединения двух кортежей из ф и 01.
4.3. Метод хешированного соединения Ш
В процессе хешированного соединения выполняются следующие шаги:
1. Выбирается хеш-функция.
2. Записи соединяемых таблиц ф и ф2 хешируются по атрибутам связи, т. е. создаются две группы таблиц {ф1у} , {ф2 у} , число таблиц в группе равно количеству разделов.
3. Для каждого раздела с помощью метода SMJ или N^1 выполняется соединение таблиц соответствующих таблиц: О у = фу X 02j, ■ = 1,г, Г - число разделов.
г
4. Объединяются результаты соединений, выполненных на шаге 3: ф= у.
у=1
В качестве хеш-функции можно выбрать, например, деление по модулю 10 значений атрибутов связи. В этом случае число разделов , = 10 (число различных остатков от деления на 10) и в таблицу фу попадут записи таблицы фу, для которых остаток от деления на 10 значения атрибута связи равен у (у = 0,9 ).
Лемма 7. Справедливы следующие утверждения:
1. Производящая функция числа записей в таблице у = 1, Г, у = 1,2) имеет
вид
=У(1 - 2П1т(1 - *)), (23)
те К у
здесь У(^) - производящая функция числа записей в таблице фу, К у = {т| Ь(ёу1т) = у}, Ь - хеш-функция, которая возвращает номер раздела, (1цт -элемент домена Оц атрибута связи Яц таблицы фу.
2. Домен атрибута связи а у таблицы фу включает следующие элементы:
О = {^Лт 1 Ь(Ат) = Л = {!}т. (24)
Вероятности появления элементов доменов иу в кортежах таблицы фуу рав-
ны
тт От, т=1,Ц у=1,,, у=1,2, (25)
\иуА ТЩк к=1
здесь в правой части Пут = Пйк : Ь^-цк) = у.
Домены остальных атрибутов таблицы фуу, вошедших в фуу из фу, и вероятности появления элементов этих доменов в кортежах фу не изменяются.
Теорема 4. Преобразование Л.-С. времени Сц выполнения соединения таблиц ф и ф2 методом Ш имеет вид:
г
^-(8) (26) у=1
где Г - число разделов, у (8) - это преобразование Л.-С. времени соединения таблиц фу и фгу, выполненного методом ЫЫ или SMJ. Формулы для у(8) определяются выражениями (19) или (22). Производящие функции числа записей соединяемых таблиц ф := ф^уи ф2 := 02j, а также домены атрибутов связи определяются выражениями (23) и (24), у = 1, Г.
Доказательство теоремы 4 следует из описания алгоритма хешированного соединения, леммы 7 и свойств преобразования Л.-С.
5. Оценка времени выполнения исходного запроса SQL
На основании результатов, сформулированных в предыдущих разделах, можно получить преобразование Л.-С. времени выполнения исходного запроса (3).
Теорема 5. Преобразование Л.-С. времени выполнения исходного запроса (3) имеет следующий вид:
j=1 J=1
где T(s) - это преобразование Л.-С. времени выполнения подзапроса Qj, которое определяется выражением (13), ^(s) - преобразование Л.-С. времени J-го соединения промежуточных таблиц, которое определяет одним из выражений (19), (22) и (26) (тип соединения назначается оптимизатором для каждого J-го соединения), n -число подзапросов в (3).
Доказательство теоремы 5 следует из свойств преобразования Л.-С. и теорем 1, 2, 3, 4, приведённых в предыдущих разделах. Используя выражение (27), можно оценивать различные моменты (среднее, дисперсию и др.) времени выполнения запросов SQL.
Важно подчеркнуть, что полученные выражения для преобразований Л.-С. времени выполнения подзапросов (13) и соединений (19), (22), (26), а также для производящих функций числа кортежей в исходных и результирующих таблицах (см. формулы (10) и (16)) могут быть использованы не только для расчёта характеристик времени выполнения запросов SQL (27), но и для оценки параметров функций распределений при подготовке исходных данных моделей массового обслуживания, которые часто используются для анализа показателей качества распределённых систем обработки данных на макроуровне.
Предложенный математический аппарат был использован при разработке Комплекса инструментальных Средств Анализа Моделей доступа к базам данных распределённых систем обработки данных (КСАМ). Этот комплекс относится к классу экспертных систем и предназначен для проведения вычислительных экспериментов с целью анализа временных показателей систем, основу которых составляют распределённые базы данных и приложения.
СПИСОК ЛИТЕРАТУРЫ
1. Weimin Du, Ravi Krishnamurthy, Ming-Chien Shan. 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, Mum-bai (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.
electronic scientific and technical periodical
SCIENCE and EDUCATION
_EL № KS 77 -3()56'J..VaU421100025. ISSN 1994-jMOg_
Estimation of SQL-query execution time 77-30569/296143
# 01, January 2012 Grigor'ev Yu.A.
Bauman Moscow State Technical University [email protected]
Mathematical apparatus of analysis of SELECT-query execution time in distributed database, considering the mechanisms of complex query decomposition into sub-queries and connection of their results, the parameters of logic scheme and random characteristics of database filling. Proposed approach could be used at early stages of design for estimation of time characteristics of execution of different complex queries on different hardware platforms. In this manner, estimation was in form of Laplase-Stieltjes transformation, that allowed to estimate not only average values but also dispersions and other issues.
Publications with keywords: optimization of SELECT operator, SQL-query, query processing time, generating function, data base, Laplase-Stieltjes transformation Publications with words: optimization of SELECT operator, SQL-query, query processing time, generating function, data base, Laplase-Stieltjes transformation
Reference
1. Weimin Du, Ravi Krishnamurthy, Ming-Chien Shan, Query Optimization in a Heterogeneous DBMS, in: Proceedings of 18th International Conference on Very Large Data Bases, August 23-27, 1992, Vancouver, Canada, pp. 277-291.
2. Goetz Graefe, Query Evaluation Techniques for Large Databases, ACM Computing Surveys 25 (2)(1993) 73-170.
3. Chaudkhari S., Methods of query optimization in relational systems, Sistemy upravleniia bazami dannykh 3 (1998) 22-36.
4. Ul'man Dzh., Fundamentals of database systems, Moscow, Finansy i statistika, 1983, 334 p.
5. Georges Gardarin, Jean-Robert Gruser, Zhao-Hui Tang, Cost-based Selection of Path Expression Processing Algorithms in Object-Oriented Databases, in: Proceedings of 22th International Conference on Very Large Data Bases (VLDB'96), September 3-6, 1996, Mumbai (Bombay), India, pp. 390-401.
6. G. Gardarin, F. Sha, Z.-H. Tang, Calibrating the query optimizer cost model of IRO-DB, an objectoriented federated database system, in: Proceedings of 22th International Conference on Very Large Data Bases (VLDB'96), September 3-6, 1996, Mumbai (Bombay), India, pp. 378-389.
7. Mishra P., Eich M.H., Join Processing in relational databases, ACM Computing Surveys 24 (1)(1992)63-113.
8. E. P. Harris, K. Ramamohanarao, Join algorithm costs revisited, The VLDB Journal 5 (1) (1996) 64-84.