이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 15.3. 병렬 롤 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

15.3. 롤 토토 계획

각 작업자는 완료 계획의 롤 토토 부분을 실행하기 때문에 단순히 일반 쿼리 계획을 세우고 여러 근로자를 사용하여 실행할 수 없습니다. 각 작업자는 출력 결과 세트의 전체 사본을 생성하므로 쿼리는 정상보다 빠르게 실행되지 않지만 잘못된 결과를 생성합니다. 대신, 계획의 롤 토토 부분은 내부적으로 쿼리 최적화기에 알려진 것이되어야합니다.부분 계획; 즉, 계획을 실행하는 각 프로세스는 각각의 필요한 출력 행이 정확히 하나의 협력 프로세스 중 하나에 의해 생성되는 방식으로 출력 행의 서브 세트 만 생성되도록 구성되어야합니다..

15.3.1. 롤 토토 스캔

현재, 병렬 쿼리로 작동하도록 수정 된 유일한 스캔 유형은 순차적 스캔입니다. 따라서 병렬 계획의 주행 테이블은 항상 A를 스캔합니다.롤 토토 SEQ 스캔. 관계의 블록은 협력 과정으로 나뉩니다. 블록은 한 번에 하나씩 나눠 지므로 관계에 대한 액세스는 순차적으로 유지됩니다. 각 프로세스는 새 페이지를 요청하기 전에 할당 된 페이지의 모든 튜플을 방문합니다.

15.3.2. 롤 토토 조인

주행 테이블은 중첩 루프 또는 해시 조인을 사용하여 하나 이상의 다른 테이블에 결합 될 수 있습니다. Join의 안쪽은 평행 작업자 내에서 안전하다면 플래너가 뒷받침하는 모든 종류의 비 평행 계획 일 수 있습니다. 예를 들어, 결합의 외부에서 가져온 값을 찾는 인덱스 스캔 일 수 있습니다. 각 작업자는 가입의 내부를 전체적으로 실행합니다. 해시 조인의 경우 동일한 해시 테이블이 각 작업자 프로세스에 내장되어 있음을 의미합니다.

15.3.3. 롤 토토 응집

PostgreSQL두 단계로 집계하여 병렬 집계를 지원합니다. 먼저, 쿼리의 병렬 부분에 참여하는 각 프로세스는 집계 단계를 수행하여 해당 프로세스의 각 그룹에 대한 부분 결과를 생성합니다. 이것은 계획에 A로 반영됩니다.부분 집계노드. 둘째, 부분 결과는를 통해 리더에게 전달됩니다.수집노드. 마지막으로, 리더는 최종 결과를 생성하기 위해 모든 근로자의 결과를 다시 분리합니다. 이것은 계획에 A로 반영됩니다.집계 최종화노드.

왜냐하면골재 마무리노드는 리더 프로세스에서 실행되며, 입력 행의 수와 비교하여 비교적 많은 그룹을 생성하는 쿼리는 쿼리 플래너에게 유리한 것으로 보입니다. 예를 들어, 최악의 시나리오에서가 보이는 그룹의 수집계 최종화노드는의 모든 작업자 프로세스에서 볼 수있는 입력 행의 수만큼 많을 수 있습니다.부분 집계무대. 그러한 경우, 롤 토토 집계를 사용하는 데는 성능 이점이 없을 것입니다. 쿼리 플래너는 계획 프로세스 중에이를 고려 하고이 시나리오에서 롤 토토 집계를 선택하지 않을 것입니다.

병렬 집계는 모든 상황에서 지원되지 않습니다. 각 집계는이어야합니다.PostgreSQL : 문서 : 9.6 : 스포츠 토토 사이트 안전롤 토토 처리의 경우 조합 기능이 있어야합니다. 집계에 유형의 전이 상태가있는 경우내부, 직렬화 및 사막화 기능이 있어야합니다. 보다PostgreSQL : 문서 : 9.6 : 범퍼카 토토 생성자세한 내용은. 집계 함수 호출이 포함 된 경우 병렬 집계가 지원되지 않습니다별개의또는주문 by조항은 순서 세트 집계에 대해서도 지원되지 않거나 쿼리가 포함될 때그룹화 세트. 쿼리에 관련된 모든 조인이 계획의 롤 토토 부분의 일부일 때만 사용할 수 있습니다.

15.3.4. 롤 토토 계획 팁

그렇게 할 것으로 예상되는 쿼리가 롤 토토 계획을 생성하지 않으면 감소를 시도 할 수 있습니다parallel_setup_cost또는parallel_tuple_cost. 물론,이 계획은 플래너가 선호하는 일련의 계획보다 느리게 될 수 있지만, 항상 그런 것은 아닙니다. 이러한 설정의 매우 작은 값으로도 롤 토토 계획을 얻지 못하면 (예 : 두 가지 모두 설정 후) 쿼리 플래너가 쿼리에 대한 롤 토토 계획을 생성 할 수없는 이유가있을 수 있습니다. 보다PostgreSQL : 문서 : 9.6 : 언제 병렬 젠 토토 사용할 수 있습니까?andPostgreSQL : 문서 : 9.6 : 스포츠 토토 사이트 안전이것이 왜 그런지에 대한 정보를 보려면.

롤 토토 계획을 실행할 때 사용할 수 있습니다설명 (분석, Verbose)각 계획 노드에 대한 직원 당 통계를 표시합니다. 이것은 모든 계획 노드간에 작업이 균등하게 배포되는지 여부를 결정하는 데 유용 할 수 있으며보다 일반적으로 계획의 성능 특성을 이해하는 데 유용 할 수 있습니다.