Причины для Oracle Автоматическая степень параллелизма?
Я заранее прошу прощения за то, что я новичок в этой области и что я, возможно, не предоставляю всю необходимую информацию заранее, но здесь идет.
- Я нахожусь на Oracle RAC с двумя узлами.
- Статистика оптимизатора была собрана недавно и является очень точной.
- У меня есть запрос, где ссылки на 3 таблицы. (Таблица A левого внешнего соединения Таблица B на X левого внешнего соединения Таблица C на Z.)
- Таблицы B и C разделены.
- Все три таблицы имеют степень 1.
- выберите index_name из dba_indexes, где степень!= 1, а index_name не похож на 'SYS%' и не возвращает строк. (Поэтому индексы имеют степень 1).
- У меня установлены следующие параметры:
,
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 11.2.0.3
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
optimizer_use_invisible_indexes boolean FALSE
optimizer_use_pending_statistics boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
os_authent_prefix string
os_roles boolean FALSE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
parallel_adaptive_multi_user boolean FALSE
parallel_automatic_tuning boolean FALSE
parallel_degree_limit string CPU
parallel_degree_policy string MANUAL
parallel_execution_message_size integer 16384
parallel_force_local boolean FALSE
parallel_instance_group string
parallel_io_cap_enabled boolean FALSE
parallel_max_servers integer 960
parallel_min_percent integer 0
parallel_min_servers integer 0
С
- все степени таблиц и индексов установлены в 1
- Параллельная_степень_поляции установлена в РУЧНОЙ
- нет подсказок по запросу
Какие могут быть возможные причины при выполнении плана объяснения, чтобы мой автоматический DOP: вычисленная степень параллелизма был рассчитан как 3?
1 ответ
Решение
Посмотрите на мой ответ здесь, чтобы получить список из 38 факторов, которые могут влиять на степень параллелизма.
Но, к счастью, большинство из этих предметов будут только снижать DOP, не так много способов неожиданно повысить DOP.
С информацией, которую вы предоставили, я думаю, что есть только два возможных пункта, которые могут вызвать параллелизм:
alter session force parallel (query|dml|ddl);
Используйте этот запрос для проверки силы на уровне сеанса:select * from v$session where pq_status = 'FORCED' or pdml_status = 'FORCED' or pddl_status = 'FORCED';
,- Планируйте управление, которое тайно заменяет ваш запрос подсказкой. Это может быть профиль, схема, управление планами SQL или расширенное переписывание с добавлением параллельной подсказки. Проверьте план объяснения с
explain plan for ...
а такжеselect * from table(dbms_xplan.display);
, В разделе "Примечания", скорее всего, будет указано, использовался ли один из этих параметров.