Paralelismo

Los componentes de una tarea, como una consulta de base de datos, se pueden ejecutar en paralelo para mejorar drásticamente el rendimiento. La naturaleza de la tarea, la configuración de la base de datos y el entorno de hardware determinan cómo el producto de base de datos Db2® realizará una tarea en paralelo.

Estos factores están interrelacionados. Tenga en cuenta todos cuando trabaje en el diseño físico y lógico de una base de datos. El sistema de base de datos Db2 da soporte a los siguientes tipos de paralelismo:
  • E/S
  • Consulta
  • Programa de utilidad

Paralelismo de entrada/salida

Cuando hay varios contenedores para un espacio de tablas, el gestor de bases de datos puede utilizar E/S paralela. La E/S paralela hace referencia al proceso de escribir en, o leer de, dos o más dispositivos de E/S simultáneamente; puede dar como resultado mejoras significativas en el rendimiento.

Paralelismo de consultas

Hay dos tipos de paralelismo de consulta: paralelismo de interconsulta y paralelismo de intraquery.

El paralelismo interconsulta hace referencia a la capacidad de la base de datos para aceptar consultas de varias aplicaciones al mismo tiempo. Cada consulta se ejecuta independientemente de las demás, pero el gestor de bases de datos las ejecuta todas al mismo tiempo. Los productos de base de datos Db2 siempre han soportado este tipo de paralelismo.

El paralelismo intrapartición hace referencia al proceso simultáneo de partes de una sola consulta, utilizando el paralelismo intrapartición, el paralelismo interpartición o ambos.

Paralelismo intrapartición

El paralelismo intrapartición hace referencia a la capacidad de dividir una consulta en varias partes. Algunos programas de utilidad de Db2 también realizan este tipo de paralelismo.

El paralelismo intrapartición subdivide lo que normalmente se considera una sola operación de base de datos como, por ejemplo, la creación de índices, la carga de bases de datos o las consultas SQL en varias partes, muchas o todas las cuales se pueden ejecutar en paralelo dentro de una sola partición de base de datos.

La Figura 1 muestra una consulta que se divide en tres partes que se pueden ejecutar en paralelo, con los resultados devueltos más rápidamente que si la consulta se ejecutara en serie. Las piezas son copias entre sí. Para utilizar el paralelismo intrapartición, debe configurar la base de datos correctamente. Puede elegir el grado de paralelismo o dejar que el sistema lo haga por usted. El grado de paralelismo representa el número de partes de una consulta que se ejecuta en paralelo.

Figura 1. Paralelismo intrapartición
Cada parte de una consulta se ejecuta de forma independiente y los resultados se fusionan antes de que se devuelvan.

Paralelismo interparticiones

El paralelismo entre particiones hace referencia a la capacidad de dividir una consulta en varias partes en varias particiones de una base de datos particionada, en una máquina o en varias máquinas. La consulta se ejecuta en paralelo. Algunos programas de utilidad de Db2 también realizan este tipo de paralelismo.

El paralelismo entre particiones subdivide lo que normalmente se considera una sola operación de base de datos como, por ejemplo, la creación de índices, la carga de bases de datos o las consultas SQL en varias partes, muchas o todas las cuales se pueden ejecutar en paralelo entre varias particiones de una base de datos particionada en una máquina o en varias máquinas.

La Figura 2 muestra una consulta que se divide en tres partes que se pueden ejecutar en paralelo, con los resultados devueltos más rápidamente que si la consulta se ejecutara en serie en una única partición de base de datos.

El grado de paralelismo viene determinado en gran medida por el número de particiones de base de datos que cree y por cómo defina los grupos de particiones de base de datos.

Figura 2. Paralelismo interparticiones
Una consulta se divide entre varias particiones de base de datos. Cada partición de base de datos sólo devuelve datos de su parte.

Paralelismo intrapartición e interpartición simultáneos

Puede utilizar paralelismo intrapartición y paralelismo interparticiones al mismo tiempo. Esta combinación proporciona dos dimensiones de paralelismo, lo que da como resultado un aumento aún más drástico en la velocidad a la que se procesan las consultas.

Figura 3. Paralelismo simultáneo entre particiones y entre particiones
Una consulta se divide utilizando el paralelismo intrapartición y, a continuación, cada parte se divide de nuevo por el paralelismo entre particiones.

Paralelismo de programa de utilidad

Los programas de utilidad de Db2 pueden aprovechar el paralelismo intrapartición. También pueden aprovechar el paralelismo entre particiones; donde existen varias particiones de base de datos, los programas de utilidad se ejecutan en cada una de las particiones de base de datos en paralelo.

El programa de utilidad de carga puede aprovechar el paralelismo intrapartición y el paralelismo de E/S. La carga de datos es una tarea intensiva de CPU. El programa de utilidad de carga aprovecha varios procesadores para tareas como el análisis y el formateo de datos. También puede utilizar servidores de E/S paralelos para grabar los datos en contenedores en paralelo.

En un entorno de base de datos particionada, el mandato LOAD aprovecha el paralelismo intrapartición, interpartición y E/S mediante invocaciones paralelas en cada partición de base de datos donde reside la tabla.

Durante la creación del índice, la exploración y la ordenación subsiguiente de los datos se produce en paralelo. El sistema Db2 explota tanto el paralelismo de E/S como el paralelismo intrapartición al crear un índice. Esto ayuda a acelerar la creación de índices cuando se emite una sentencia CREATE INDEX, durante el reinicio (si un índice está marcado como no válido) y durante la reorganización de datos.

La copia de seguridad y la restauración de datos son tareas muy vinculadas a la E/S. El sistema Db2 utiliza tanto el paralelismo de E/S como el paralelismo intrapartición al realizar operaciones de copia de seguridad y restauración. La copia de seguridad aprovecha el paralelismo de E/S leyendo de varios contenedores de espacios de tablas en paralelo y grabando de forma asíncrona en varios soportes de copia de seguridad en paralelo.