説明
この変数はV2.1バージョンから導入されました。
機能の概要
parallel_servers_targetは、各サーバー上でのパラレルクエリのキュー待機条件を設定します。
複数のパラレル実行(Parallel eXecution、PX)されるSQLが合計で消費するスレッド数が、パラレルクエリのキュー待機条件を超えた場合、その後のパラレル実行されるSQLはキューに入って待機する必要があります。
権限要件
クエリ変数
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_GLOBAL_VARIABLEビュー(Oracleモード)およびinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。変数の変更
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは
SUPERまたはALTER SYSTEM権限を持っている必要がありますグローバルシステム変数の値を変更するには。Oracleユーザーテナントは
ALTER SYSTEM権限を持っている必要がありますグローバルシステム変数の値を変更するには。
プロパティの説明
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | Int |
| デフォルト値 | 0、特別な意味はなく、この値はテナント作成時に自動的に設定されます。 |
| 値の範囲 | [0, 9223372036854775807] |
| 適用範囲 | Global |
| 変更は可能か | はい。SET ステートメントを使用して変更できます。 |
使用方法
parallel_servers_targetはテナントレベルの変数であり、テナント作成時には以下のようになります:
テナント作成ステートメントで
parallel_servers_target値が指定されている場合、そのテナントは指定された値に従ってparallel_servers_targetを設定します。テナント作成時に
parallel_servers_target値を指定するステートメントは次のとおりです:obclient> CREATE TENANT IF NOT EXISTS <tenant_name> CHARSET='utf8mb4', ZONE_LIST=('zone1'), PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('<pool_name>') set parallel_servers_target = 624;テナント作成時に
parallel_servers_target値が指定されていない場合、OBServerノード内でテナントを作成する過程で、自動的にmin_cpuに基づいて値を計算し、設定します。テナントにログインして、以下のステートメントを使用してこの値を確認します:
obclient> show variables like 'parallel_servers_target';自動計算された
parallel_servers_target値は通常小さく、単純なパラレルクエリのニーズしか満たせません。そのテナントでパラレル処理を使用したい場合は、手動でこの値を大きな値に設定することを推奨します。推奨アルゴリズムはparallel_servers_target = max_cpu * 10です。
設定例
各サーバー上のパラレルクエリキューを624に設定します。
obclient> SET GLOBAL parallel_servers_target = 624;