답변:
아니요, v9.6 이전의 PostgreSQL 버전에는 해당되지 않습니다. PostgreSQL FAQ : PostgreSQL은 CPU 리소스를 어떻게 사용합니까?를 참조하십시오 .
PostgreSQL 서버는 프로세스 기반 (스레드되지 않음)입니다. 각 데이터베이스 세션은 단일 PostgreSQL 운영 체제 (OS) 프로세스에 연결 됩니다. 여러 세션이 OS에 의해 사용 가능한 모든 CPU에 자동으로 분산됩니다. 또한 OS는 CPU를 사용하여 디스크 I / O를 처리하고 데이터베이스 이외의 다른 작업을 실행합니다. 클라이언트 응용 프로그램은 스레드를 사용할 수 있으며 각 스레드는 별도의 데이터베이스 프로세스에 연결됩니다.
버전 9.6 이후 부의 일부 쿼리의 여러 CPU 코어가 사용될 수 있도록, 별도의 OS 공정에 병렬로 실행할 수있다. 병렬 쿼리 는 버전 10 (max_parallel_workers_per_gather)에서 기본적으로 활성화되며 향후 릴리스에서 추가 병렬 처리가 예상됩니다.
아니요, 그러나 해결 방법이 있습니다. :)
기본 키를 기반으로 쿼리를 분할 한 다음 dblink 확장을 통해 데이터베이스에 연결하고 모든 하위 쿼리를 기다리는 parsel (병렬 선택) plpgsql 함수를 발견했습니다.
https://gist.github.com/mjgleaso/8031067
저자는 또한이 기능에 대한 기사를 썼습니다 : http://geeohspatial.blogspot.com/2013/12/a-simple-function-for-parallel-queries_18.html