Plsql 创建多线程的过程

Plsql 创建多线程的过程,plsql,oracle11g,Plsql,Oracle11g,我对软件包中的oracle过程有一个问题。大多数过程都是这种类型的插入。当我只有一个打开的会话时,我被告知它正在与我的用户创建大约30个线程。有什么问题吗?是发动机故障还是我的故障?有没有什么方法可以减少线程的数量以减少数据库延迟 EXECUTE IMMEDIATE 'INSERT INTO EST_PARDEPAR_CIVIL select 0 status, ROW_NUMBER() over(PARTITION by e.ID_EXPEDIENTE order by

我对软件包中的oracle过程有一个问题。大多数过程都是这种类型的插入。当我只有一个打开的会话时,我被告知它正在与我的用户创建大约30个线程。有什么问题吗?是发动机故障还是我的故障?有没有什么方法可以减少线程的数量以减少数据库延迟

EXECUTE IMMEDIATE 'INSERT INTO EST_PARDEPAR_CIVIL
select 0 status, ROW_NUMBER() over(PARTITION by e.ID_EXPEDIENTE order by             
a.FECHA_ACTUACION,a.ID_ACTUACION_EXP) orden,
e.ID_EXPEDIENTE,o.ID_OFICINA,o2.ID_OFICINA ID_JUZGADO,  a.FECHA_ACTUACION, 
o.DESCRIPCION DESCRIPCION_OFICINA, o2.DESCRIPCION DESCRIPCION_JUZGADO
, ee.ID_ESTADO_EXPEDIENTE, a.ID_ACTUACION_EXP,
CASE WHEN ee.CODIGO_ESTADO_EXPEDIENTE in (''PDO'',''PAR'') THEN         
''PARALIZADO'' ELSE ''DESPARALIZADO'' END TIPO_ESTADO, ' || to_char(camara) 
|| '
from ACTUACION_EXP a 
JOIN EXPEDIENTE e on e.ID_EXPEDIENTE = a.ID_EXPEDIENTE
JOIN EST_EXPEDIENTES_CIVIL ie on ie.ID_EXPEDIENTE = e.ID_EXPEDIENTE
JOIN ESTADO_EXPEDIENTE ee on ee.ID_ESTADO_EXPEDIENTE = 
a.ID_ESTADO_EXPEDIENTE and ee.status != -1 and ee.genera_estado_procesal = 1
JOIN OFICINA o on o.ID_OFICINA = a.ID_OFICINA
JOIN OFICINA o2 on o2.ID_OFICINA = nvl(o.ID_OFICINA_SUPERIOR, o.ID_OFICINA)
where ee.CODIGO_ESTADO_EXPEDIENTE in 
(''PDO'',''PAR'',''SAC'',''DPA'',''DES'')
and o.ID_camara = ' || to_char(camara);

commit;

数据库服务器可能决定并行执行
select
部分,甚至
insert
部分。但只有将Oracle配置为自动使用语句的并行执行,才会出现这种情况。如果是这种情况,DBA应该将其配置为使用更少的资源。您可以尝试对选择和插入使用
NO_PARALLEL
提示来避免这种情况。显然,选择是问题所在,那么如何在立即执行时使用提示?我在尝试
select/*no_parallel*/…
时出错:它不适用于execute immediate:SQL命令未正确结束。EXECUTE IMMEDIATE“INSERT INTO EST_enquipmentes_CIVIL NOPARALLEL(ID_enquipmente,ID_CAMARA)SELECT/*no_parallel*/会给出一个错误,当然会。