DM7调整配置参数 :
SF_GET_PARA_VALUE (scope int, paraname varchar(256));
配置参数的值类型为数值类型时使用该函数来获取当前值。SCOPE 参数为 1 表示获取 INI 文件中配置参数的值,为 2 表示获取内存中配置参数的值。
确定并行任务个数:
当开启自动并行(PARALLEL_POLICY=1)时,参数 MAX_PARALLEL_DEGREE 生效,控制并行查询最多使用的线程数。MAX_PARALLEL_DEGREE 缺省值为 1,表示不并行。此时若指定参数对应的 HINT “PARALLEL”,则使用 HINT 值;
当开启手动并行(PARALLEL_POLICY=2)时,参数 MAX_PARALLEL_DEGREE 失效,用户需要在语句中使用此参数对应的 HINT “PARALLEL”指定语句的并行度,否则不并行。
INI 参数 MAX_PARALLEL_DEGREE 设置最大并行任务个数。取值范围:1~128。缺省值 1,表示无并行任务,此参数仅在 PARALLEL_POLICY 值为 1 时才有效。
select para_name,para_value from v$dm_ini where para_name='PARALLEL_POLICY';
SP_set_para_VALUE(2,'PARALLEL_POLICY',1) --静态参数需要重启数据库才能生效
select para_name,para_value from v$dm_ini where para_name='MAX_PARALLEL_DEGREE';
SP_SET_PARA_VALUE (1,'MAX_PARALLEL_DEGREE',3); --动态参数可直接生效
不用加HINT就可以并行查询
若果PARALLEL_POLICY=2,则需要配置PARALLEL_THRD_NUM 参数,默认为10(该参数才生效),查询还需要加HINT如下图所示:
查看执行计划,可以看到并行运行。
注意:只有 PARALLEL_POLICY 为 2 时,才需要 PARALLEL_THRD_NUM 参数(如上所示)。当 PARALLEL_POLICY 为 0 或 1 时,则不需要并行工作线程数 PARALLEL_THRD_NUM。