Несколько причин, по которым параллельные запросы в Oracle иногда могут замедлять работу системы:
- Недостаток параллельных процессов. 1 Если процессов для параллельного выполнения запроса не хватает, его выполнение может быть отложено до появления достаточных параллельных серверов. 1
- Использование прямого ввода-вывода (direct path IO). 1 При параллельных запросах Oracle обычно использует этот механизм, чтобы избежать конкуренции за буферный кэш и более оптимально распределить ввод-вывод между процессами. 1 Однако для параллельных операций, которые выполняют полное сканирование таблицы, вероятность найти соответствующие данные в буферном кэше довольно низкая, поэтому он добавляет мало ценности. 1
- Неправильные настройки индексов. 2 Если степень для всех индексов установлена равной 4, оптимизатор может считать, что полное сканирование индекса параллельно будет относительно дешёвым, и выбрать именно этот план. 2
Для оптимизации производительности параллельных запросов рекомендуется учитывать и настраивать параметры базы данных, например, размер пула параллельных процессов и степень параллелизма индексов 134.