Параллельная обработка

Оценить
(0 голоса)

XPS поддерживает параллелизм ряда операций SQL, включая сканирования, объединения, сортировки, агрегирования, group-bys, загрузки, вставки и построения индексов. В завершающем разделе мы рассмотрим параллелизм запросов, поддерживаемый XPS, и сосредоточенные объединения - одну из задач параллельной обработки запроса, которая основана на модели, не предусматривающей совместное использование.

Параллелизм запроса

Особенность PDQ (parallel database query - параллельного запроса БД) сервера XPS дает возможность повышать производительность индивидуальных запросов. PDQ позволяет выполнять параллельные сканирования фрагментов одного взаимодействующего сервера или фрагментов, распространенных по нескольким взаимодействующим серверам. Прежде всего для ускорения выполнения плана запроса он разбивается на подпланы. После этого подпланы размещаются по потокам и обрабатываются в параллельном режиме.

XPS использует операторы и перестановки (exchanges) SQL для разбивки плана запроса на подпланы. Оператор SQL является потоком (порожденным процессом), принимающим поток (последовательность) строк из одной или двух таблиц данных и выполняющим предопределенное действие над данными. Перестановка консолидирует данные, обработанные одним или более операторами, и отправляет их операторам, включенным в выполнение следующей фазы плана запроса. Эта модель называется iterator mode! (моделью итератора, или повторителя).

Некоторые из операторов SQL и их действия приведены в следующем списке:

•             SCAN. Последовательно считывает фрагментированные данные из локальной таблицы, нефрагментированной таблицы или индексных данных.

•             NESTED LOOP JOIN. Выполняет объединения вложенного цикла. Для более подробной информации обращайтесь к разделу "Объединения вложенного цикла" в главе 8.

•             HASH JOIN. Выполняет хэш-объединения. Для получения более подробных сведений обращайтесь к разделу "Хэш-объединения" в главе 8.

•             GROUP. Группирование данных и расчет агрегаций в соответствии с SQL-вы-ражением GROUP BY.

•             SORT. Сортировка данных в соответствии с SQL-выражением ORDER BY или в собственных целей БД.

•             REMOTE. Последовательные считывания дистанционных данных.

Рассмотрим простую аналогию действий, происходящих внутри почтового отделения. "Операторами сканирования" являются служащие почтового отделения, собирающие почту в вагонах и доставляющие ее в почтовое отделение. Действие, заключающееся в консолидации почты и подаче ее в сортировочные машины, представляет первый "обмен". Процесс сортировки предоставляет "операторов сортировки". Затем отсортированная почта собирается и помещается в почтовые сумки (другой процесс обмена) для доставки в различные пункты почтового отделения.

Рассмотрим следующий SQL-запрос:

select sales_area, sum(invoice_total) from customer a, orders b where a.cust_id = b.cust_id

group by sales_area order hy sum(invoice_total)

На рисунке 11.3 показана возможная конфигурация операторов и обменов, которые могут быть организованы для обработки этого запроса.

Этапы приведенной обработки описываются далее.

•             Каждый из двух взаимодействующих серверов сканирует фрагмент таблицы заказчика.

•             Одновременно четыре взаимодействующих сервера сканируют фрагмент таблицы счетов.

•             Два обмена (exchanges) присваивают отсканированные строки трем операторам хэш-объединения в соответствии с ключом соединения.

•             Обмен комбинирует результаты из операторов объединения и распределяет результаты по двум операторам групп (группирования).

•             Обмен консолидирует результаты объединенных операторов и отправляет их другому взаимодействующему серверу для сортировки.

•             Оператор сортировки выполняет завершающий этап запроса. Результаты передаются пользовательскому приложению.

Таблица заказчика        Таблица счетов

Рисунок 11.3. Операторы и обмены запроса XPS

Сортировки выполняются в параллельном режиме несколькими итераторами (повторителями) сортировки; данные для них передаются по принципу "карусели". Обмен, следующий за фазой сортировки, выполняет упорядоченное слияние. Операции group-bys обрабатываются подобным образом.

При хэш-объединениях для первой таблицы строится хэш-таблица. После этого хэш-таблица опробуется значениями столбца объединения из второй таблицы.

DFM (Data Flow Manager - менеджер потока данных) управляет перемещением данных через обмены к операторам SQL.

Сосредоточенные объединения
Модель процессов  Informix XPS
Модель, не предусматривающая совместное использование
Взаимодействующие группы
Виртуальные процессоры

Добавить комментарий


Защитный код
Обновить