すべてのプロダクト
Search
ドキュメントセンター

PolarDB:時空間並列クエリ機能の有効化

最終更新日:Jan 23, 2025

Ganosは、PostgreSQLの並列クエリ機能を使用して、大量のデータを含む複雑な時空間データクエリを高速化できます。

並列クエリの原理

並列クエリはテーブルレベルで実行されます。 次の図は、並列クエリのプロセスを示しています。

image

使用上の注意

  • 並列クエリに多数のワーカーを使用すると、CPU負荷が高くなります。 CPU負荷が高い場合は、2つのワーカーを使用するために、max_parallel_workers_per_gatherパラメーターを2に設定することを推奨します。

  • メモリが限られているサーバーでの同時並行アクセス要求に対して並列クエリ機能を有効にする場合は、work_memパラメーターを適切な値に設定する必要があります。 このパラメーターの最小値は64 KBです。 並列ワーカーの数にwork_memパラメーターの値を掛けた同時アクセス要求の数が、サーバーメモリの60% を超えないようにする必要があります。

Usage

Ganos並列クエリ機能を有効にするには、次の操作を実行します。

  1. postgresql.confプロファイルで並列クエリパラメーターを設定します。

    • max_parallel_workersパラメーターを設定して、有効にできる並列ワーカーの総数を指定します。 パラメーターの値は8〜32の範囲で、max_worker_processesパラメーターの値より小さくする必要があります。

    • max_parallel_workers_per_gatherパラメーターを設定して、クエリのGatherノードの最大同時実行性を指定します。 パラメーターの値は2〜4の範囲で、max_parallel_workersパラメーターの値より小さくする必要があります。

    • 並列クエリ機能を強制的に有効にするには、force_parallel_modeパラメーターをonに設定します。

    • テーブルの並列ワーカーの数を設定するには、alter table table_name set (parallel_workers=n) ステートメントを実行します。

      説明

      上記のSQL文では、nは並列ワーカーの数を示します。 nに適切な値を設定する方法の詳細については、max_parallel_workers_per_gatherパラメーターの説明をご参照ください。

  2. Ganos 関数のコストを増やします。

    Ganos モジュール拡張が作成された後、関数にはデフォルトのコストがあります。 モジュール拡張のテーブルのデータサイズが小さい場合、並列クエリはデフォルトで無効になっています。 関数が計算集中型であり、並列クエリがその関数に適している場合は、並列クエリを有効にする前に、関数のコストを増やす必要があります。