Я пытаюсь выполнить запрос Oracle SQL параллельно, но он отказывается это делать. Мои параметры базы данных:
fast_start_parallel_rollback string LOW
parallel_adaptive_multi_user boolean TRUE
parallel_automatic_tuning boolean FALSE
parallel_degree_level integer 100
parallel_degree_limit string CPU
parallel_degree_policy string AUTO
parallel_execution_message_size integer 16384
parallel_force_local boolean TRUE
parallel_instance_group string
parallel_io_cap_enabled boolean FALSE
parallel_max_servers integer 8
parallel_min_percent integer 0
parallel_min_servers integer 0
parallel_min_time_threshold string AUTO
parallel_server boolean FALSE
parallel_server_instances integer 1
parallel_servers_target integer 8
parallel_threads_per_cpu integer 2
recovery_parallelism integer 0
Я пробовал следующие сессионные операторы:
alter session set parallel_degree_policy = 'AUTO';
alter session force parallel QUERY parallel 4;
alter session enable parallel query;
Я попробовал следующие подсказки SQL:
/*+ parallel(auto) */
/*+ parallel(4) */
/*+ parallel */
Я проверяю параллелизм по следующим запросам:
select *
from v$sql_plan_monitor
where sid = 4019
and status = 'EXECUTING';
select SQL_TEXT, PX_SERVERS_EXECUTIONS, EXECUTIONS,
(PX_SERVERS_EXECUTIONS/EXECUTIONS) AS AVG_PQ_EXEC
from V$SQL where SQL_ID = 'a6g8hcgatapky';
Я использую сложный оператор SQL, который выполняется в течение 40 минут. Может кто-нибудь сказать мне, что я делаю неправильно и почему мой запрос не выполняется параллельно.