Permite ejecutar varias sentencias en paralelo.
Sintaxis
statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]Ejecuta las sentencias statement1, statement2, statement3, … en paralelo entre sí. La salida de esas sentencias se descarta.
En muchos casos, ejecutar sentencias en paralelo puede ser más rápido que ejecutarlas simplemente en secuencia. Por ejemplo, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3 probablemente sea más rápido que statement1; statement2; statement3.
Ejemplos
Crea dos tablas en paralelo:
CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();Elimina dos tablas en paralelo:
DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;Configuración
La configuración max_threads controla cuántos hilos se crean.
Comparación con UNION
La cláusula PARALLEL WITH se parece un poco a UNION, que también ejecuta sus operandos en paralelo. Sin embargo, hay algunas diferencias:
PARALLEL WITHno devuelve ningún resultado de la ejecución de sus operandos; solo puede relanzar una excepción si se produce alguna;PARALLEL WITHno requiere que sus operandos tengan el mismo conjunto de columnas de resultados;PARALLEL WITHpuede ejecutar cualquier sentencia (no soloSELECT).