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