SELECT INTO y paralelismo en SQL 2014


Muchas veces utilizamos la instrucción SELECT INTO para poder insertar registros en alguna tabla.

A partir de SQL 2014 usando su modo de compatibilidad de base de datos 120, esta instrucción de forma automática hace paralelismo utilizando mas cores y así pudiendo mejorar los tiempos de respuesta en todas estas operaciones.

Es muy importante destacar que la base de datos debe estar en modo 120 (SQL 2014) de lo contrario el SELECT INTO funcionara como lo venía haciendo hasta el momento (sin paralelismo).

Ahora vamos a hacer algunas pruebas de performance y comparar los distintos planes de ejecución.

Usando paralelismo de SELECT INTO:

Lo que haremos primero es poner la base en modo 120 si es que no lo está:

 

Ahora haremos un SELCT INTO y observaremos el plan de ejecución:

 



Aquí podemos observar la aparición de “Parallelism” en el INSERT.

Sin usar paralelismo de SELECT INTO:

La siguiente prueba es ejecutar el mismo SELECT INTO pero que no use paralelismo (versión de base de datos menor que 120)

 

 

Aquí ya podemos observar que no aparece la operación de paralelismo como en el caso anterior.

Comparativas de performance:

En el siguiente cuadro se ilustran algunos números relacionados a la performance cuando se ejecuta de una u otra manera

Tipo Insert Costo QP Duración ms Cpu Time
Paralelismo (SQL 2014)

326

8094

22172

Normal (Modo 110)

576

9510

9484

Como se puede observar en la tabla de resultados es mas performante utilizar el modo de SQL 2014 a costa de mas consumo de CPU y en donde los costos de Query Plan han bajado de forma considerable al igual que los tiempos

Conclusiones:

SQL 2014 en su modo 120 de base de datos tiene entre sus tantas mejoras de performance la posibilidad de utilizar SELECT INTO con algoritmos de paralelismo mejorando así los tiempos de respuesta en estos procesos.