PolarDBは複数のポリシーをサポートしており、グローバルまたは単一のクエリに対して並列処理度 (DOP) を制御し、リソースの読み込みが適切な場合に適切なDOP値が選択されるようにします。
並列クエリ待ち行列ポリシーのパラメーター
max_parallel_workersは、1つのノード内の並列ワーカーの最大数を指定します。 並列ワーカーの数がmax_parallel_workers値を超えると、新しい並列クエリがキューに入り、待機します。 キュースケジューリングは、先入れ先出し (FIFO) ポリシーを使用します。
queuing_parallel_degree_limitは、キューで許可される最大DOPを指定します。 キュー内の並列ワーカーの総数がqueuing_parallel_degree_limit値を超えると、キューは満杯と見なされ、後続のクエリには順次実行が使用されます。
pq_max_queuing_timeは、キュー内の最大待ち時間を指定します。 キュー内の待ち時間が指定値を超えた場合、キューは直ちに削除され、シーケンシャル実行が使用されます。
パラメーター
Parameters | レベル | 説明 |
max_parallel_ワーカー | グローバル | 並列ワーカーの最大数。 並列ワーカーの数が指定された値を超えると、新しい並列クエリがキューに入り、待機します。
|
queuing_parallel_degree_limit | グローバル | 一度にキューに入ることができる並列クエリのDOP値の最大合計。 指定された値を超えると、並列クエリは禁止され、シーケンシャル実行が使用されます。
|
pq_max_queuing_time | グローバル、セッション | キュー内の最大待機時間。 キューの待ち時間が指定値を超えた場合は, シーケンシャル実行が使用されます。 単位:ミリ秒。
|
統計変数:
変数 | レベル | 説明 |
PQ_refused_over_total_workers | グローバルとセッション | ワーカーの総数の制限のために並列に実行されないクエリの数。 |
PQ_refused_over_max_queuing_time | グローバルとセッション | キュータイムアウトのためにエラスティック並列クエリが失敗したクエリの数。 |
Total_running_parallel_workers | グローバル | 実行中の並列ワーカーの数。 |
アダプティブDOP設定
PolarDBは、クエリのコストと現在のリソース負荷に基づいたアダプティブDOP設定をサポートします。これには、シングルノードのエラスティック並列クエリのDOPやマルチノードのエラスティック並列クエリのスケジューリングポリシーが含まれます。 下表に、各パラメーターを説明します。
パラメーター | レベル | 説明 |
parallel_degree_ポリシー | グローバル | 個々のクエリのDOPポリシー。 有効な値:
|
parallel_workers_ポリシー | セッション | 弾性並列クエリポリシー。The elastic parallel query policy. 有効な値:
|
システムリソースの制限
parallel_degree_policyパラメーターがAUTOに設定されている場合、PolarDBは、データベースのCPU使用率、メモリ使用率、またはIOPS値に基づいて並列クエリを有効または無効にします。 PolarDBは、並列クエリのコストに基づいてDOPも設定します。
パラメーター | レベル | 値 | 説明 |
loose_auto_dop_cpu_pct_hwm | グローバル |
| CPU使用率のしきい値。 CPU使用率がしきい値を超えると、PolarDBは並列クエリを無効にします。 |
loose_auto_dop_mem_pct_hwm |
| メモリ使用量のしきい値。 メモリ使用量がしきい値を超えると、PolarDBは並列クエリを無効にします。 | |
loose_auto_dop_iops_pct_hwm |
| IOPS使用率のしきい値。 IOPS使用量がしきい値を超えると、PolarDBは並列クエリを無効にします。 | |
loose_auto_dop_low_degree_コスト |
| DOPを自動的に設定するために使用されるポリシー。 並列クエリを有効にすると、PolarDBは次のルールに基づいてDOPを設定します。
説明 このパラメーターは、PolarDBが並列クエリを有効にした後にのみDOPを設定するために使用されます。 並列クエリの有効化または無効化には使用されません。 |