Кластерные технологии Oracle - Динамически масштабируемое параллельное выполнение

ОГЛАВЛЕНИЕ

Динамически масштабируемое параллельное выполнение

Другим способом распределения нагрузки в базе данных Oracle является использование функции параллельного выполнения запросов. Параллельное выполнение (параллельный запрос или параллельный DML) распределяет работу по выполнению команды SQL между несколькими процессами. В среде Oracle Real Application Clusters эти процессы могут быть принадлежать разным экземплярам СУБД. Оптимизатор по стоимости СУБД поддерживает функцию параллельного исполнения как фундаментальный компонент при создании планов выполнения SQL-команд. В среде Real Application Clusters принятие решений о распараллеливании задачи зависит от возможностей внутриузлового и межузлового параллелизма. Например, если для конкретного запроса необходимо шесть процессов для его выполнения и шесть процессоров локального узла (узла, к которому подключен пользователь) свободны, то запрос будет обрабатываться только при помощи локальных ресурсов. Это демонстрирует эффективность внутриузлового параллелизма, при котором исключается распределение запроса между множеством узлов. Однако если в локальном узле доступны только два процессора, то для обработки запроса будут использоваться два процессора локального и четыре процессора другого узла. Таким образом, для ускорения операции с запросами используются как межузловой так и внутриузловой параллелизмы.

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