Permet d'exécuter plusieurs instructions en parallèle.
Syntaxe
statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]Exécute les instructions statement1, statement2, statement3, … en parallèle. La sortie de ces instructions est ignorée.
Dans de nombreux cas, l'exécution d'instructions en parallèle peut être plus rapide qu'une simple suite des mêmes instructions. Par exemple, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3 sera probablement plus rapide que statement1; statement2; statement3.
Exemples
Crée deux tables en parallèle :
CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();Supprime deux tables en parallèle :
DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;Paramètres
Le paramètre max_threads détermine le nombre de threads créés.
Comparaison avec UNION
La clause PARALLEL WITH présente quelques similitudes avec UNION, qui exécute lui aussi ses opérandes en parallèle. Il existe toutefois quelques différences :
PARALLEL WITHne renvoie aucun résultat issu de l’exécution de ses opérandes ; il peut seulement relancer une exception provenant de l’un d’eux, le cas échéant ;PARALLEL WITHn’exige pas que ses opérandes aient le même ensemble de colonnes de résultat ;PARALLEL WITHpeut exécuter n’importe quelles instructions SQL (pas seulementSELECT).