Paralelizar una consulta

Sergi
18 de Noviembre del 2004
Hola,
alguien sabe como se deben paralelizar las consultas para que funcionen con una máquina que tiene 4 CPU's de 1050 Mhz cada una.
En el caso que alguien tenga un manual o parecido me lo puede facilitar?

Gracias por adelantado

Jorge-DBA
18 de Noviembre del 2004
Primeramente, debes considerar algunas cosas antes de paralelizar una consulta:

-Version de la Base de datos
-Init. (PARALLEL QUERY OPCION)
-Segmento con grado de paralelismo.
-Hints.

Por la parte del init configura los parámetros:

parallel_min_servers
parallel_threads_per_cpu
parallel_min_percent
parallel_max_servers
parallel_execution_message_size
parallel_adaptive_multi_user
parallel_automatic_tuning
parallel_broadcast_enabled

(Depende mucho de la version de la BD que manejes)

tienes que alterar la (o las) tabla(s) (indices) con un grado de paralelismo, ejemplo 4 con el parámetro "DEGREE". ejemplo:

ALTER TABLE "AURORA$JIS$UTILITY$"."AURORA$IIOP$SYSTEM$PROPERTIES"
PARALLEL ( DEGREE 4);

Cuando realices tu consuta indíca a Oracle que estarás ocupando 4 procesadores con el hint. por ponerte un ejemplo:

SELECT /*+ FULL(scott_emp) PARALLEL(scott_emp, 4) */ ename
FROM scott.emp scott_emp;

Si deseas hacer una sentiencia select y que la consulta paralelice el índice puedes ocuparlo tambien en el hint:

SELECT /*+ PARALLEL_INDEX(table1, index1, 3, 2) +/

Saludos Camarada y suerte!.