Permite executar várias instruções em paralelo.
Sintaxe
statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]Executa as instruções statement1, statement2, statement3, … em paralelo. A saída dessas instruções é descartada.
Em muitos casos, executar instruções em paralelo pode ser mais rápido do que simplesmente executá-las em sequência. Por exemplo, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3 provavelmente será mais rápido do que statement1; statement2; statement3.
Exemplos
Cria duas tabelas em paralelo:
CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();Remove duas tabelas em paralelo:
DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;Configurações
A configuração max_threads controla quantas threads são criadas.
Comparação com UNION
A cláusula PARALLEL WITH é um pouco parecida com UNION, que também executa seus operandos em paralelo. No entanto, há algumas diferenças:
PARALLEL WITHnão retorna nenhum resultado da execução de seus operandos; se houver alguma exceção, apenas a propaga novamente;PARALLEL WITHnão exige que seus operandos tenham o mesmo conjunto de colunas no resultado;PARALLEL WITHpode executar quaisquer instruções (não apenasSELECT).