Рассматривают
несколько путей распараллеливания запросов.
Горизонтальный
параллелизм. Этот параллелизм возникает тогда, когда хранимая в БД информация
распределяется по нескольким физическим устройствам хранения — нескольким дискам.
При этом информация из одного отношения разбивается на части по горизонтали
(см. рис. 10.13). Этот вид параллелизма иногда называют распараллеливанием или
сегментацией данных. И параллельность здесь достигается путем выполнения одинаковых
операций, например фильтрации, над разными физическими хранимыми данными. Эти
операции могут выполняться параллельно разными процессами, они независимы. Результат:
выполнения целого запроса складывается из результатов выполнения отдельных
операций.
Время выполнения
такого запроса при соответствующем сегментировании данных существенно меньше,
чем время выполнения этого же запроса традиционными способами одним процессом.
Вертикальный
параллелизм. Этот параллелизм достигается конвейерным выполнением операций,
составляющих запрос пользователя. Этот подход требует серьезного усложнения
в модели выполнения реляционных операций ядром СУБД. Он предполагает, что ядро
СУБД может произвести декомпозицию запроса, базируясь на его функциональных
компонентах, и при этом ряд подзапросов может выполняться параллельно, с минимальной
связью между отдельными шагами выполнения запроса.
Действительно,
если мы рассмотрим, например, последовательность операций реляционной алгебры:
R5=R1 [ А,С]
R6=R2 [A.B.D]
R7 = R5[A >
128]
R8 =R5[A]R6
то операции
первую и третью можно объединить и выполнить параллельно с операцией два, а
затем выполнить над результатами последнюю четвертую операцию.
Общее время
выполнения подобного запроса, конечно, будет существенно меньше, чем при традиционном
способе выполнения последовательности из четырех операций (см. рис. 10.13).
И третий
вид параллелизма является гибридом двух ранее рассмотренных (см. рис. 10.14).
Наиболее
активно применяются все виды параллелизма в OLAP-приложениях, где эти методы
позволяют существенно сократить время выполнения сложных запросов над очень
большими объемами данных.
Рис.
10.13. Выполнение запроса при вертикальном параллелизме
Рис.
10.14. Выполнение запроса при гибридном параллелизме
Знаете ли Вы, как разрешается парадокс Ольберса? (Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды. Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.