Причины для 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.

С информацией, которую вы предоставили, я думаю, что есть только два возможных пункта, которые могут вызвать параллелизм:

  1. alter session force parallel (query|dml|ddl); Используйте этот запрос для проверки силы на уровне сеанса: select * from v$session where pq_status = 'FORCED' or pdml_status = 'FORCED' or pddl_status = 'FORCED';,
  2. Планируйте управление, которое тайно заменяет ваш запрос подсказкой. Это может быть профиль, схема, управление планами SQL или расширенное переписывание с добавлением параллельной подсказки. Проверьте план объяснения с explain plan for ... а также select * from table(dbms_xplan.display);, В разделе "Примечания", скорее всего, будет указано, использовался ли один из этих параметров.
Другие вопросы по тегам