Database Programming & Design




Параллельное выполнение индивидуальных запросов


В чисто реляционных базах данных для успешной работы с данными

объемом более 250 Гбт требуется наивысшая степень параллельности

при выполнении каждого индивидуального запроса. Первейшим ключом

к распараллеливанию является структура самого языка запросов SQL.

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

немного ограничений на порядок выполнения запроса; поэтому

оптимизаторы запросов реляционных СУБД обладают такой гибкостью

при выборе планов выполнения запроса. По этой же причине SQL

исключительно подходит для параллельного выполнения.

Для использования этой возможности необходимо придумать стратегии

выполнения, обеспечивающие оптимизированное параллельное

выполнение индивидуального запроса, а не только обеспечить

параллельное выполнение последовательных индивидуальных

стратегий. Заметим, что и индивидуальные операции определения и

манипулирования данными (а также утилиты архивирования и

восстановления) должны выполняться параллельным образом.

Поставщики реляционных СУБД выполнили большую часть работы для

обеспечения такого распараллеливания. Более того, оказалось

возможным поддерживать высокую степень прозрачности для

приложений и администраторов баз данных. Этому значительно

способствовали не только структура SQL, но также и то, что ядро

языка и типы данных были в основном зафиксированы в 80-х и начале

90-х гг. И тем не менее, от производителей требуется 2-3 года,

чтобы внедрить внутреннее распараллеливание запросов в зрелую

реляционную СУБД.

Многие отмечают, что сложность внедрения параллелизма в VLDB

связана с двумя аспектами. Первый аспект состоит в замене

последовательных алгоритмов на параллельные. Второй аспект более

тонкий. Для проектирования и разработки конкурентоспособного

программного обеспечения требуется качественная перестройка

образа мышления. Например, первым поползновением разработчика

программы загрузки базы данных было бы использование функции

INSERT. Этот метод работает для малых и средних баз данных, но не




Содержание  Назад  Вперед