我正在尝试并行运行 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';
我正在使用一个运行 40 分钟的复杂 SQL 语句。谁能告诉我我做错了什么以及为什么我的查询没有并行运行。