GanosBaseは複数のCPUコアを使用して、クエリやコンピューティングのパフォーマンスを向上させます。 このメカニズムは並列操作と呼ばれます。 GanosBaseは、SQL文の並列実行とラスターでの並列操作をサポートしています。
SQL文を並列に実行する
制御ポリシー機能の動作
PostgreSQLは複数のCPUコアを使用して複数の並列クエリプランを生成します。 次に、PostgreSQLは、これらのCPUコア全体で新しいクエリ計画のバランスを取ります。 これにより、クエリのパフォーマンスが向上します。
シナリオ
多数のラスタオブジェクトをスキャンして、指定した空間スコープまたは属性要件を満たすラスタオブジェクトを識別する場合は、SQL文を並行して実行することをお勧めします。 これにより、クエリの実行に必要な時間が大幅に短縮されます。
適用範囲
内のラスタオブジェクトの計算に使用されるすべての読み取り専用関数 GanosBaseは並列クエリをサポートしています。 これらの関数には、ラスタオブジェクトの属性を照会するために使用される関数が含まれます。
ラスターオブジェクトを並列に管理する
制御ポリシー機能の動作
ほとんどの場合、 GanosBaseは、複数のCPUコアを使用して、ラスターオブジェクトのサブセットに対して複数の操作を並行して実行します。 これにより、ラスターオブジェクトの全体的な計算に必要な時間が短縮されます。 各サブセットは独立して計算される。 全てのサブセットに対する計算が完了すると、ラスタオブジェクトに対する並列演算は終了する。
シナリオ
計算するラスタオブジェクトが大きいです。 この場合、全体の計算が完了するまでに長い時間を要する。
適用範囲
並列ラスタレベル操作をサポートする関数の詳細については、次のトピックを参照してください。
始める前に
準備状態で使用できるトランザクションの最大数を設定します。
max_prepared_transactionsパラメーターを使用して、最大数を設定できます。 このパラメーターのデフォルト値は0です。 このパラメーターをmax_connectionsパラメーターの値に設定することを推奨します。 これにより、準備状態の1つのトランザクションが各接続に割り当てられます。
説明このパラメーターを変更した後、インスタンスを再起動する必要があります。
並列度の設定
並列操作をサポートする関数の並列度 (DOP) を指定しない場合、またはDOPを0に設定しない場合、システムは自動的にganos.parallel.de greeパラメーターの値をDOPとして使用します。 ganos.parallel.de greeパラメーターは、Grand Unified Configuration (GUC) パラメーターです。 ganos.parallel.de greeパラメーターのデフォルト値は1です。 デフォルト値は、並列実行または操作がサポートされていないことを示します。
並列ラスタレベル操作をサポートする関数では、このパラメーターを正の整数に設定することもできます。 次に、ラスタオブジェクトの計算を並列タスクに分割できます。 例:
ST_ImportFrom('chunk_table','OSS://<akxxxx >:< ak_secretxxxx>@ oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc', '{}', '{"parallel": 4}');トランザクションの整合性を設定するSet the transactional consistency
ganos.parallel.transaction GUCパラメーターを使用して、トランザクションの一貫性を指定できます。 有効な値:
transaction_commit: 並列トランザクションは、プライマリトランザクションに基づいてコミットまたはロールバックできます。 デフォルト値です。
fast_commit: 並列トランザクションはロールバックできません。
最適なパフォーマンスを確保するために、事前にST_CreateChunkTable関数を使用してチャンクテーブルを作成できます。
並列関数が匿名ユーザーによって作成された一時的なチャンクテーブルを返すことができない場合は、まずチャンクテーブルを作成する必要があります。 次に、chunktableパラメーターでチャンクテーブルを指定します。