Oracle-SQL查询拒绝并行运行
我试图并行运行Oracle SQL查询,但它拒绝这样做。我的数据库参数是:Oracle-SQL查询拒绝并行运行,sql,oracle,Sql,Oracle,我试图并行运行Oracle SQL查询,但它拒绝这样做。我的数据库参数是: fast_start_parallel_rollback string LOW parallel_adaptive_multi_user boolean TRUE parallel_automatic_tuning boolean FALSE parallel_degree_level integer 1
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语句。有谁能告诉我我做错了什么,以及为什么我的查询没有并行运行。你能包括语句或至少解释计划吗?我怀疑该计划会显示一些仍然是串行的。我不希望在该计划中有许多并行指示器,PX Send/Receive,PCWP/PCWC和P->P或P->S-我想你可能有一个P->S出现,表明它下降到串行-但没有查询,没有解释计划,你有一个问题,不能有效地回答。我希望你使用企业版。应该运行ALTER SESSION ENABLE PARALLEL QUERY以在会话级别启用并行查询(您做到了,签入(G)V$SESSION)。如果要使用提示强制执行并行处理,请尝试/*+parallel(表\u name\u或\u alias,4)*/。同时尝试增加PARALLEL_MAX_SERVERS参数。有时,如果Oracle refuese没有足够的可用并行服务器来并行运行查询,则至少将其加倍。解释中不包含任何与P相关(或P->S)的内容。我不是DBA,它不允许我在会话中设置并行服务器。