이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 동일한 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 15.2. 병렬 토토 베이를 언제 사용할 수 있습니까?버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

15.2. 병렬 젠 토토를 언제 사용할 수 있습니까?#

쿼리 플래너가 어떤 상황에서도 병렬 쿼리 계획을 생성하지 못하게 할 수있는 몇 가지 설정이 있습니다. 병렬 쿼리 계획을 생성하려면 다음 설정을 표시된대로 구성해야합니다.

  • max_parallel_workers_per_gather는 0보다 큰 값으로 설정해야합니다. 이것은 더 이상 근로자를 사용하지 않아야한다는보다 일반적인 원칙의 특별한 경우입니다.max_parallel_workers_per_gather.

또한 시스템은 단일 사용자 모드에서 실행되지 않아야합니다. 이 상황에서 전체 데이터베이스 시스템이 단일 프로세스로 실행되고 있으므로 배경 작업자는 사용할 수 없습니다.

일반적으로 병렬 쿼리 계획이 생성 될 수있는 경우에도 플래너는 다음 중 하나가 사실이라면 주어진 쿼리에 대해 생성되지 않습니다..

  • 쿼리는 모든 데이터를 작성하거나 데이터베이스 행을 잠그는 것입니다. 쿼리에 최상위 수준 또는 CTE 내에서 데이터 수정 작업이 포함 된 경우 해당 쿼리에 대한 병렬 계획이 생성되지 않습니다. 예외적으로 새 테이블을 만들어 채우는 다음 명령은 기본에 병렬 계획을 사용할 수 있습니다select젠 토토의 일부 :

    • 테이블 생성 ... as

    • 구체화 된보기 만들기

    • 상쾌한 뷰

  • 실행 중에 젠 토토가 중단 될 수 있습니다. 시스템이 부분적 또는 점진적 실행이 발생할 수 있다고 생각하는 모든 상황에서는 병렬 계획이 생성되지 않습니다. 예를 들어,를 사용하여 만든 커서토토 결과 PostgreSQL : 문서 : 18 : 선언병렬 계획을 사용하지 않습니다. 마찬가지로 양식의 PL/PGSQL 루프젠 토토 루프의 X 용. 엔드 루프병렬 젠 토토 시스템이 병렬 젠 토토가 활성화되어있는 동안 루프의 코드가 안전한지 확인할 수 없기 때문에 병렬 계획을 사용하지 않습니다..

  • 젠 토토는 표시된 기능을 사용합니다병렬 불안한. 대부분의 시스템 정의 기능은입니다.Parallel Safe, 그러나 사용자 정의 함수는 표시병렬 불안한기본적으로. 에 대한 토론보기PostgreSQL : 문서 : 18 : 15.4. 토토 캔 안전.

  • 쿼리가 이미 평행 한 다른 쿼리 내부에서 실행 중입니다. 예를 들어, 병렬 쿼리로 호출 된 함수가 SQL 쿼리 자체를 발행하는 경우 해당 쿼리는 병렬 계획을 사용하지 않습니다. 이것은 현재 구현의 한계이지만, 매우 많은 수의 프로세스를 사용하여 단일 쿼리를 초래할 수 있으므로이 제한을 제거하는 것이 바람직하지 않을 수 있습니다..

특정 젠 토토에 대해 병렬 젠 토토 계획이 생성 되더라도 실행 시간에 병렬로 해당 계획을 실행하는 것이 불가능한 몇 가지 상황이 있습니다. 이런 일이 발생하면 리더는 아래의 계획 부분을 실행합니다.수집거의 마치 마치 마치 마치 마치 마치 마치수집노드가 없었다. 다음 조건이 충족되면 발생합니다.

  • 백그라운드 작업자의 총 수가 초과 할 수 없다는 제한으로 인해 배경 작업자를 얻을 수 없습니다max_worker_processes.

  • 병렬 젠 토토 목적으로 출시 된 총 배경 작업자 수가 초과 할 수 없다는 제한으로 인해 배경 작업자를 얻을 수 없습니다.max_parallel_workers.

  • 클라이언트는 0이 아닌 페치 카운트로 실행 메시지를 보냅니다. 에 대한 토론보기확장 젠 토토 프로토콜. 부터스포츠 토토 사이트 : 문서 : 18 : 32 장. LIBPQ - C 라이브러리현재 그러한 메시지를 보낼 방법이 없으며 LibPQ에 의존하지 않는 클라이언트를 사용할 때만 발생할 수 있습니다. 이것이 자주 발생하는 경우 설정하는 것이 좋습니다max_parallel_workers_per_gather일련의 실행할 때 차선책이 될 수있는 젠 토토 계획을 생성하지 않기 위해 가능성이있는 세션에서 0을 0으로 표시합니다.