回答:
いいえ、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)ではデフォルトで並列クエリが有効になっていますが、将来のリリースでは並列処理が追加される予定です。
PostgreSQL 9.6以降では、Parallel-Queryが最終的にPostgreSQLに登場し始めます。
たとえば、Parallel Scan / Parallel Join / Parallel Aggregatesのような概念はすでに組み込まれていますが、近々追加されます。
本当にエキサイティングなことは、いくつかのケースで確認するレポートnear-linear speed-up
があることであり、これは非常に印象的です!
いいえ、しかし回避策があります。:)
主キーに基づいてクエリを分割し、dblink拡張機能を介してデータベースに接続し、すべてのサブクエリを待機するparsel(並列選択)plpgsql関数を見つけました。
https://gist.github.com/mjgleaso/8031067
著者は、この関数に関する記事も書いています:http : //geeohspatial.blogspot.com/2013/12/a-simple-function-for-parallel-queries_18.html