Tengo una consulta de selección SQL que utilizan paralelismo, algo como esto¿Podemos especificar el grado de paralelismo de forma dinámica?
INSERT/*+ APPEND PARALLEL (tst, 6) */ INTO test_table tst
(
**************
**************
**************
)
SELECT /*+ PARALLEL (a, 6) */ DISTINCT
**************
**************
**************
FROM src_table a;
Como se puede ver aquí, he-codificado el grado pero, yo no quiero hacer eso, ya que el número de Las CPU no son iguales en todos los DB donde se ejecuta este código.
My requirement:
Necesito consultar V$PARAMETER
para el recuento de CPU disponible y utilizar el valor como result-2
en mi consulta. Algo como esto ...
DECLARE
degree varchar2(1);
BEGIN
select value-2 INTO degree from v$parameter where name='cpu_count';
INSERT/*+ APPEND PARALLEL (tst, degree) */ INTO test_table tst
(
**************
**************
**************
)
SELECT /*+ PARALLEL (a, degree) */ DISTINCT
**************
**************
**************
FROM src_table a;
END;
embargo, no está funcionando como yo esperaba que fuera y veo 32 hilos paralelos, con independencia de las CPU disponibles. ¿Es esta una forma correcta de hacerlo? Si no, ¿hay alguna otra solución para mi requerimiento?
Maldición ... ¿Cómo me perdí esta opción. Gracias Olie. – Vivek