Степень параллелизма по умолчанию в оракулах
Я использовал степень параллелизма по умолчанию для настройки производительности, и я также получил лучшие результаты. но я сомневаюсь, что это повлияет, когда какая-то другая работа получит доступ к той же таблице одновременно.
Пример кода ниже.
select /*+ FULL(customer) PARALLEL(customer, default) */ customer_name from customer;
Количество доступных серверов - 8 . Как работает эта степень параллелизма по умолчанию? повлияет ли это, если какое-либо другое задание выполнит запрос к той же таблице в то же время? Прежде чем перевести этот запрос в производство, я хотел бы знать, повлияет ли это? Спасибо!
1 ответ
Из документации:
ПАРАЛЛЕЛЬНЫЙ (ПО УМОЛЧАНИЮ):
Оптимизатор вычисляет степень параллелизма, равную количеству процессоров, доступных во всех участвующих экземплярах, умноженному на значение параметра инициализации PARALLEL_THREADS_PER_CPU.
Максимальная степень параллелизма ограничена количеством процессоров в системе. Формула, используемая для расчета лимита:
PARALLEL_THREADS_PER_CPU * CPU_COUNT * the number of instances available
по умолчанию все открытые экземпляры в кластере, но могут быть ограничены с помощью PARALLEL_INSTANCE_GROUP
или спецификация услуги. Это по умолчанию.