| 젠 토토 : 문서 : 9.6 : 젠 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.6 : 스포츠 토토 결과 쿼리 | PostgreSQL : 문서 : 9.6 : 스포츠 토토 결과 쿼리 | 15장. 병렬 토토 핫 | PostgreSQL : 문서 : 9.6 : 언제 병렬 젠 토토 사용할 수 있습니까? |
최적화 프로그램이 병렬 토토 핫가 특정 쿼리에 대한 가장 빠른 실행 전략이라고 판단하면 다음을 포함하는 쿼리 계획을 생성합니다.수집 노드. 다음은 간단한 예입니다.
EXPLAIN SELECT * FROM pgbench_accounts WHERE 필러 LIKE '%x%';
토토 핫 계획
------------------------------------------------------------------------
수집(비용=1000.00..217018.43행=1너비=97)
계획된 작업자: 2
- pgbench_accounts의 병렬 시퀀스 스캔(비용=0.00..216018.33행=1너비=97)
필터: (필러 ~~ '%x%'::text)
(4행)
모든 경우에,집결노드는 병렬로 실행될 계획의 일부인 정확히 하나의 하위 계획을 갖습니다. 만약집결노드가 계획 트리의 맨 위에 있으면 전체 토토 핫가 병렬로 실행됩니다. 계획 트리의 다른 곳에 있으면 토토 핫의 해당 부분만 병렬로 실행됩니다. 위의 예에서 토토 핫는 하나의 테이블에만 액세스하므로 이외의 계획 노드는 하나뿐입니다.집결노드 자체; 해당 계획 노드는의 하위 노드이므로집결노드, 병렬로 실행됩니다.
PostgreSQL : 문서 : 9.6 : 설명 토토 베이, 플래너가 선택한 일꾼의 수를 확인할 수 있습니다. 때집결토토 핫 실행 중에 노드에 도달하면 사용자 세션을 구현하는 프로세스가 여러 가지를 요청합니다PostgreSQL : 문서계획자가 선택한 일꾼 수와 같습니다. 동시에 존재할 수 있는 총 백그라운드 작업자 수는 다음과 같이 제한됩니다.max_worker_processes, 따라서 병렬 토토 핫가 계획보다 적은 수의 작업자로 실행되거나 작업자가 전혀 없이 실행될 수도 있습니다. 최적의 계획은 사용 가능한 작업자 수에 따라 달라질 수 있으므로 토토 핫 성능이 저하될 수 있습니다. 이런 일이 자주 발생한다면 증가를 고려하세요.max_worker_processes더 많은 작업자를 동시에 실행하거나 감소시킬 수 있도록max_parallel_workers_per_gather그래서 기획자는 더 적은 수의 작업자를 요청합니다.
주어진 병렬 토토 핫에 대해 성공적으로 시작된 모든 백그라운드 작업자 프로세스는 다음의 하위 계획인 계획 부분을 실행합니다.집결노드. 리더는 계획의 해당 부분도 실행하지만 추가 책임이 있습니다. 또한 작업자가 생성한 모든 튜플을 읽어야 합니다. 계획의 병렬 부분이 적은 수의 튜플만 생성하는 경우 리더는 추가 작업자처럼 동작하여 토토 핫 실행 속도를 높이는 경우가 많습니다. 반대로, 계획의 병렬 부분이 많은 수의 튜플을 생성하는 경우 리더는 작업자가 생성한 튜플을 읽고 해당 레벨 위의 계획 노드에 필요한 추가 처리 단계를 수행하는 데 거의 전적으로 전념할 수 있습니다.집결노드. 그러한 경우 리더는 계획의 병렬 부분을 실행하는 작업을 거의 수행하지 않습니다.