Сканирование таблиц с сортировкой

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

Если оптимизатор СУБД Oracle принимает решение сканировать таблицу, то количество подчиненных запросов, используемых для получения данных, будет принимать значение п+1, где п - действительная степень параллелизма, которая, впрочем, может отличаться от затребованной степени параллелизма по причинам, указанным в предыдущем разделе, а единица добавляется с учетом процесса самого координатора запросов.

Если за сканированием таблицы следует сортировка, то количество процессов для используемых подчиненных запросов составит 2л+1.

Рассмотрим, к примеру, следующий оператор SQL: select * from CUSTOMER order by CUST_NAME;

В результате будет выполнено полное сканирование таблицы CUSTOMER, за которым последует сортировка. На рисунке 9.5 показана модель процессов, используемая PQO для табличного сканирования и сортировки со степенью параллелизма, равной 4.

Рисунок 9.5. Модель процессов PQO для сканирования и сортировки таблицы

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

Другие возможности параллелизма
Создание индекса
Восстановление БД
Oracle продолжает оставаться ключевым продуктом на платформе Sun
Эффективная выгрузка грязных блоков

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


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