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




Рис.1. Сокращение времени обработки за счет применения вертикального и горизонтального параллелизма.




Методы фрагментации выполнения применяется в обеих моделях серверов, с той разницей, что
Informix-ODS для выполнения подзапросов и подзадач создает потоки, выполняемые параллельно
на нескольких процессорах, а в Informix-OXPS выполнение подзапросов и подзадач распределяется
между ко-серверами. Фрагментация выполнения дает многократный выигрыш в
производительности на следующих типах задач:


  • обработка характерных для приложений DSS сложных запросов, которые
    включают сканирование, сортировку, соединения огромных объемов данных,
    распределенных по множеству дисков и/или ко-серверов, группирование,
    вычисление агрегатных функций;
  • массовые вставки;
  • построение индексов;
  • резервирование журналов транзакций, сохранение и восстановление
    данных;
  • загрузка, выгрузка данных, реорганизация баз данных;

Informix - единственная на сегодня СУБД, которая обладает средствами распараллеливания для
столь обширного набора операций.

3.3.1. Вертикальный параллелизм. Итераторы
Элементарные операции, из которых состоит реализация любого запроса, называются
итераторами. Итератор - это программный объект, который воспринимает потоки строк от одного
или двух источников, выполняет над ними некоторый вид обработки и выдает результирующий
поток строк. Источниками данных могут служить дисковые файлы, сетевые соединения,
результирующие потоки других итераторов. Основное свойство итераторов - единообразие их
внешнего интерфейса, благодаря которому они могут произвольным образом объединяться.

Рассмотрим пример выполнения запроса:

SELECT state, SUM(order_item)

FROM customer, order

WHERE order.customer_id = customer.id

GROUP BY state

ORDER BY SUM(order_item)

Дерево его реализации (рис. 2) включает следующие типы итераторов:

SCAN - Сканирует таблицы и индексы.

HASH JOIN - Реализует алгоритм соединения методом хеширования.

GROUP - Группирует данные (GROUP BY) и вычисляет агрегатные функции.

SORT - Сортирует данные.

Дерево итераторов на рис. 2 реализует одновременное выполнение на разных процессорах или ко-



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