메인 콘텐츠로 건너뛰기
여러 SQL 문을 병렬로 실행할 수 있도록 합니다.

구문

statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]
SQL 문 statement1, statement2, statement3, …을 서로 병렬로 실행합니다. 해당 SQL 문의 출력은 버려집니다. 많은 경우 SQL 문을 병렬로 실행하면 동일한 SQL 문을 단순히 순차적으로 실행하는 것보다 더 빠를 수 있습니다. 예를 들어, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3statement1; statement2; statement3보다 더 빠를 가능성이 큽니다.

예시

두 개의 테이블을 병렬로 생성합니다:
CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();
두 테이블을 병렬로 삭제합니다:
DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;

설정

max_threads 설정은 생성할 스레드 수를 제어합니다.

UNION과의 비교

PARALLEL WITH 절은 피연산자를 병렬로 실행한다는 점에서 UNION과 다소 유사합니다. 하지만 몇 가지 차이점이 있습니다.
  • PARALLEL WITH는 피연산자 실행 결과를 반환하지 않으며, 예외가 발생한 경우 해당 예외를 다시 발생시킬 수만 있습니다.
  • PARALLEL WITH는 피연산자가 동일한 결과 컬럼 집합을 가질 필요가 없습니다.
  • PARALLEL WITHSELECT뿐 아니라 모든 SQL 문을 실행할 수 있습니다.
마지막 수정일 2026년 6월 10일