Корпоративные базы данных - статьи

Обработка распределенных запросов




Выше уже упоминалось это качество DDB. Обработка распределенных запросов (Distributed Query
-DQ) - задача, более сложная, нежели обработка локальных и она требует интеллектуального
решения с помощью особого компонента - оптимизатора DQ. Обратимся к базе данных,
распределенной по двум узлам сети. Таблица detail хранится на одном узле, таблица supplier - на
другом. Размер первой таблицы - 10000 строк, размер второй - 100 строк (множество деталей
поставляется небольшим числом поставщиков). Допустим, что выполняется запрос:

SELECT detail_name, supplier_name, supplier_address
FROM detail, supplier
WHERE detail.supplier_number = supplier.supplier_number;

Результирующая таблица представляет собой объединение таблиц detail и supplier,
выполненное по столбцу detail.supplier_number (внешний ключ) и supplier.supplier_number
(первичный ключ).

Данный запрос - распределенный, так как затрагивает таблицы, принадлежащие различным
локальным базам данных. Для его нормального выполнения необходимо иметь обе исходные
таблицы на одном узле. Следовательно, одна из таблиц должна быть передана по сети. Очевидно,
что это должна быть таблица меньшего размера, то есть таблица supplier. Следовательно,
оптимизатор DQ запросов должен учитывать такие параметры, как, в первую очередь, размер
таблиц, статистику распределения данных по узлам, объем данных, передаваемых между узлами,
скорость коммуникационных линий, структуры хранения данных, соотношение
производительности процессоров на разных узлах и т.д. От интеллекта оптимизатора DQ впрямую
зависит скорость выполнения распределенных запросов.

Содержание раздела