Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Lij / Средства параллельной обработки информации.doc
Скачиваний:
48
Добавлен:
16.04.2013
Размер:
92.16 Кб
Скачать

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

Если не применяется параллельная обработка, то система базы данных обрабатывает каждый запрос как одну единицу с помощью последовательной обработки (serial processing).Например, когда в SQL-операторе запрашивается упорядоченное соединение двух таблиц, сервер может выбрать строки в одной таблице, затем в другой, соединить полученные строки, отсортировать их и после этого вернуть строки пользователю. В данном случае для последовательного выполнения каждой операции сервер применяет один процессор, так что общее время выполнения запроса складывается из времени, затрачиваемого на выполнение каждой операции. SQL-запрос, обрабатываемый последовательно, представлен на рис. 4.

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

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

Основным принципом параллельной SQL-обработки является правило, называемое правилом «разделяй и властвуй». Чтобы ускорить процесс выполнения запроса в системе параллельной SQL-обработки (parallel SQLprocessing system),этот запрос по определенной схеме разбивается на несколько подзадач меньшего объема, а затем все свободные процессоры начинают параллельную обработку этих подзадач, что снижает общее время выполнения запроса. На рис. 5 показано, как с помощью параллельной обработки осуществляется упорядоченное соединение двух таблиц: один процессор сканирует одну таблицу, в то время как другой процессор сканирует вторую таблицу, а все остальные процессоры соединяют и сортируют полученные результаты. Разбивая один запрос на несколько подзадач и выполняя их параллельно, сервер, использующий параллельную обработку, уменьшает время выполнения всего запроса.

Когда параллельная SQL-обработка реализована достаточно грамотно, повышение быстродействия должно быть линейно по отношению к числу процессоров, используемых системой для параллельной обработки запросов.

При помощи параллельной обработки в OracleServerмогут выполняться операцииDML(например, операторыSELECT,INSERT,UPDATEиDELETE) и некоторые операцииDDL(например,CREATETABLEиCREATEINDEX). Для обработки запроса, обращенного к базе данных,OracleServerв этом случае использует специальную архитектуру процессов операционной системы.

Архитектура параллельной sql-обработки

Когда процесс диспетчера получает запрос к базе данных, он передает этот запрос процессу координатора запросов (рис. 6). Как видно из названия, координатор запросов (query coordinator) является центральным процессом во время параллельной обработки операции. Его задача - надлежащее разбиение запроса на подзадачи и передача его свободным серверам запросов для обработки. Кроме того, координатор запросов объединяет результаты, получаемые от серверов запросов, и возвращает итоговый результат пользователю.

Процесс сервера запросов (query server)это обычный серверный процесс, который выполняет задачу, передаваемую ему координатором запросов. Oracle8 поддерживает пул свободных совместно используемых серверов запросов так, что любой координатор запросов может воспользоваться ими. Когда экземплярOracleсконфигурирован для параллельной обработки информации, он может динамически настраиваться, изменяя число серверов запросов в зависимости от текущей загруженности системы. С повышением нагрузкиOracleзапускает дополнительные серверы запросов, чтобы запросы пользователей обрабатывались без задержки. С уменьшением нагрузкиOracleзакрывает серверы запросов, снижая расход ресурсов сервера на обработку информации. Во время начального запуска сервера можно задать минимальное и максимальное число серверов запросов. Это позволяет обеспечить необходимое, но не слишком большое, чтобы не перегружать систему, количество серверов запросов.

Для максимального повышения быстродействия параллельной обработки информации Oracleавтоматически использует процессоры компьютера многопроцессорного сервера. Не нужно назначать процессам координаторов запросов и серверов запросов конкретные процессоры, так как данные процессы сами могут использовать ресурсы компьютера по мере их высвобождения.