メインコンテンツへスキップ
メインコンテンツへスキップ

PARALLEL WITH 句

複数のステートメントを並列実行できます。

構文

statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]

statement1statement2statement3、… の各ステートメントを互いに並列で実行します。これらのステートメントの出力結果は破棄されます。

多くの場合、同じステートメントを単純に順番に実行するよりも、並列に実行した方が高速になる場合があります。例えば、statement1 PARALLEL WITH statement2 PARALLEL WITH statement3 は、statement1; statement2; statement3 より高速になる可能性が高いです。

2 つのテーブルを並列に作成します:

CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();

2つのテーブルを並列に削除します:

DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;

設定

max_threads 設定は、起動されるスレッド数を制御します。

UNION との比較

PARALLEL WITH 句は、そのオペランドを並列実行するという点で UNION と少し似ています。ただし、いくつかの違いがあります。

  • PARALLEL WITH はオペランドの実行結果を一切返さず、発生した例外を再スローすることしかできません。
  • PARALLEL WITH は、オペランドが同じ結果列の集合を持つ必要はありません。
  • PARALLEL WITH は、任意のステートメント(SELECT だけでなく)を実行できます。