Ejecución paralelizada en RAC

El optimizador basado en costos incorpora consideraciones de ejecución en paralelo a fin de obtener planes de ejecución óptimos.

En entornos RAC las decisiones del optimizador se hacen tanto a nivel intranodo como internodo. Por ejemplo, si un query requiere de 6 procesos para completar  su tarea y existen 6 procesos esclavos ociosos en el nodo local (el nodo al que está conectado el usuario) entonces el query se resuelve utilizando solamente recursos locales. De este modo se logra un paralelismo intranodo eficiente y se elimina el overhead que generaría una resolución internodo. Sin embargo, si existieran sólo 2 procesos esclavos ociosos en el nodo local, entonces se usarán los 2 procesos locales mas 4 de otro para completar el query. En este último caso se utiliza paralelismo intranodo e internodo a fin de acelerar el procesamiento.

Otro aspecto a considerar es que frecuentemente los queries nos son particionados de forma perfecta entre los procesos esclavos; de modo tal que no todos terminan al mismo tiempo. La tecnología de procesamiento paralelo de Oracle detecta en forma dinámica los proceso que están ociosos porque ya finalizaron y vuelve a asignarle trabajo tomado de las tablas de colas de los procesos sobrecargados. De este modo Oracle redistribuye el trabajo en forma dinámica y eficiente entre todos los procesos. Esta tecnología la aplica tanto a nivel intranodo como internodo.

3 comentarios

  1. «la ejecucion en paralelo» para que funcione, se debe de configurar algun parametro de la base de datos single instance o una vez puesta en el RAC, empieza a funcionar automaticamente ???

    • Hola Ivan,
      entiendo que es necesario utilizar paralelismo a nivel de tabla y podes aplicar HINTS de paralelismo en las consultas.

  2. Excelente nota Fernando! muy clara la explicación.
    Muchas gracias por compartirnos el conocimiento sobre esta tecnología.


Comments RSS TrackBack Identifier URI

Deja un comentario