La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Oracle/590435-Paralelismo-sobre-Procedimientos-almacenados.html

Paralelismo sobre Procedimientos almacenados

Paralelismo sobre Procedimientos almacenados

Publicado por Desco (9 intervenciones) el 30/01/2006 08:21:08
Hola grupo,
alguien sabe si se pueden hacer llamadas a procedimientos almacenados de forma paralela??.
Si es asi como??..
Un saludo.
Desco.

RE:Paralelismo sobre Procedimientos almacenados

Publicado por tuozzo (66 intervenciones) el 30/01/2006 12:08:05
No entiendo mucho que deceas hacer, pero creo que quieres llamar dos procedimientos al mismo tienpo estilo multitare o el multi hilo de java.

Segun tengo entendido no se puede, pl/sql no hacepta paralelismo de procesos almacenados.

RE:Paralelismo sobre Procedimientos almacenados

Publicado por Desco (9 intervenciones) el 30/01/2006 12:13:56
Gracias Tuozzo,
mas o menos lo tenia claro, pero queria confirmación. He pensado en hacer las llamadas a los procedimientos desde fuera y creando mulhilos, pero necesitaba saber si era posible hacer un select a la tabla "dual" utilizando paralelismo.. pero si no se puede.. pues no se puede.. no hay otra! :)

Un saludo.
Desco.

RE:Paralelismo sobre Procedimientos almacenados

Publicado por tuozzo (66 intervenciones) el 31/01/2006 12:43:38
De todos modos estoy averiguando por mi cuenta porque me parecio muy interesante tu pregunta. Yo se que se puede realizar select a la tabla dual desde cualquier parte y para simular cualquier seleccion de datos, pero lo que pasa es que lo que yo conozco de multi hilos tienes que declarar el hilo, inicializarlo y abrirlo, y segun se oracle con pl/sql no lo hace.

Saludos.

RE:Paralelismo sobre Procedimientos almacenados

Publicado por chema (2 intervenciones) el 09/04/2015 10:52:16
Para realizar esto usa el paquete:

DBMS_PARALLEL_EXECUTE

RE:Paralelismo sobre Procedimientos almacenados

Publicado por JSL (186 intervenciones) el 31/01/2006 19:06:56
Espero funcione ...
-------------------------------------------------------------------------------------------------------
SQL> create table prb ( c varchar2(10));

Table created.

SQL> create or replace procedure prb1 is
2 begin
3 insert into prb values ('HOLA');
4 end;
5 /

Procedure created.

SQL> create or replace procedure prb2 is
2 begin
3 insert into prb values ('MUNDO');
4 end;
5 /

Procedure created.

SQL> create or replace function f1 return number is
2 begin
3 prb1;
4 return 1;
5 end;
6 /

Function created.

SQL> create or replace function f2 return number is
2 begin
3 prb2;
4 return 2;
5 end;
6 /

Function created.

SQL>
SQL> set serveroutput on
SQL> select f1, f2 from dual;
select f1, f2 from dual
*
ERROR at line 1:
ORA-14551: cannot perform a DML operation inside a query
ORA-06512: at "GI906664.PRB1", line 3
ORA-06512: at "GI906664.F1", line 3
ORA-06512: at line 1

SQL> declare
2 a number;
3 begin
4 a := f1+f2; dbms_output.put_line('SUMA: '||a);
5 end;
6 /
SUMA: 3

PL/SQL procedure successfully completed.

SQL>
SQL> select * from prb;

C
----------
HOLA
MUNDO

SQL>
------------------

Continuacion ...

Publicado por JSL (186 intervenciones) el 31/01/2006 19:11:22
Lo que faltaria probar seria que a momento de hacer la suma a:= f1+f2; y estas funciones llaman por si solas a su procedimiento correspondiente, se resuelvan en paralelo los procedimientos que llaman cada funcion respectivamente ... pero mas tarde haremos la prueba para ver si se levantan son unos queries que tengan bastante informacion ...

Eso mismo

Publicado por Descp (9 intervenciones) el 07/02/2006 08:12:54
JSL, ahi ando yo, si esas llamadas se realizan o no en paralelo.
Al menos me has mostrado una secuencia de como llamarlas a la vez..

Muchas gracias.
Desco!.

Paralelismo sobre Procedimientos almacenados

Publicado por chema (2 intervenciones) el 09/04/2015 10:51:22
Claro que se puede,

con el paquete: DBMS_PARALLEL_EXECUTE

saludos