이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 15.1. 토토 캔 결과 쿼리가 작동하는 방법버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

15.1. 토토 캔 쿼리가 작동하는 방법

Optimizer가 토토 캔 쿼리가 특정 쿼리의 가장 빠른 실행 전략이라고 판단하면 A가 포함 된 쿼리 계획을 만듭니다.수집또는합병 수집노드. 간단한 예는 다음과 같습니다.

'%x%'와 같은 필러가있는 pgbench_accounts에서 * 선택 *;

모든 경우에수집또는합병 수집노드에는 정확히 하나의 아동 계획이 있으며,이 계획은 평행하게 실행될 계획의 일부입니다. 인 경우수집또는합병 수집노드는 플랜 트리의 맨 위에 있으며 전체 쿼리가 토토 캔로 실행됩니다. 플랜 트리의 다른 곳이라면 아래 계획의 일부만이 토토 캔로 실행됩니다.수집노드 자체; 그 계획 노드는의 자녀이기 때문에수집노드, 토토 캔로 실행됩니다.

PostgreSQL : 문서 : 12 : 14.1. 설명 토토 캔 사이트 순위, 플래너가 선택한 근로자 수를 볼 수 있습니다. 때수집쿼리 실행 중에 노드에 도달하면 사용자 세션을 구현하는 프로세스가 여러 가지를 요청합니다​​배경 작업자 프로세스플래너가 선택한 근로자 수와 같습니다. 플래너가 사용하는 것을 고려할 배경 작업자의 수는 최대로 제한됩니다max_parallel_workers_per_gather. 한 번에 존재할 수있는 총 배경 작업자의 총 수는 두 가지 모두에 의해 제한됩니다max_worker_processesandmax_parallel_workers. 따라서 토토 캔 쿼리가 계획보다 적은 근로자로 실행되거나 노동자가 전혀 없을 수도 있습니다.max_worker_processesandmax_parallel_workers더 많은 근로자가 동시에 또는 대안 적으로 줄일 수 있도록max_parallel_workers_per_gather따라서 플래너가 더 적은 수의 근로자를 요청하도록합니다.

주어진 토토 캔 쿼리에 대해 성공적으로 시작된 모든 배경 작업자 프로세스는 계획의 토토 캔 부분을 실행합니다. 지도자는 또한 계획의 해당 부분을 실행하지만 추가 책임이 있습니다. 또한 근로자가 생성 한 모든 튜플도 읽어야합니다.수집노드 또는합병 수집노드. 그러한 경우, 지도자는 계획의 토토 캔 부분을 실행하는 일을 거의하지 않을 것입니다.

계획의 평행 부분 상단에있는 노드가합병 수집대신수집, 계획의 토토 캔 부분을 실행하는 각 프로세스는 정렬 된 순서로 튜플을 생성하고 리더가 주문 보존 병합을 수행하고 있음을 나타냅니다. 대조적으로,수집근로자의 튜플을 편리한 순서로 읽고 존재했던 모든 종류의 순서를 파괴합니다.