Query Profile Metrics
StarRocks Query Profile によって生成される生のメトリクスの権威あるリファレンスで、オペレーターごとにグループ化されています。
用語集として使用してください。トラブルシューティングのガイダンスについては、query_profile_tuning_recipes.md にジャンプしてください。
Summary Metrics
クエリ実行に関する基本情報:
| Metric | Description |
|---|---|
| Total | クエリによって消費された総時間。プランニ ング、実行、およびプロファイリングフェーズの期間を含みます。 |
| Query State | クエリの状態。可能な状態には、Finished、Error、Running があります。 |
| Query ID | クエリの一意の識別子。 |
| Start Time | クエリが開始されたタイムスタンプ。 |
| End Time | クエリが終了したタイムスタンプ。 |
| Total | クエリの総期間。 |
| Query Type | クエリのタイプ。 |
| Query State | クエリの現在の状態。 |
| StarRocks Version | 使用された StarRocks のバージョン。 |
| User | クエリを実行したユーザー。 |
| Default Db | クエリに使用されたデフォルトのデータベース。 |
| Sql Statement | 実行された SQL ステートメント。 |
| Variables | クエリに使用された重要な変数。 |
| NonDefaultSessionVariables | クエリに使用された非デフォルトのセッション変数。 |
| Collect Profile Time | プロファイルを収集するのにかかった時間。 |
| IsProfileAsync | プロファイル収集が非同期であったかどうかを示します。 |
Planner Metrics
プランナーの包括的な概要を提供します。通常、プランナーに費やされる総時間が10ms未満であれば、問題はありません。
特定のシナリオでは、プランナーがより多くの時間を必要とする場合があります:
- 複雑なクエリは、最適な実 行プランを確保するために、解析と最適化に追加の時間を必要とする場合があります。
- 多数のマテリアライズドビューが存在する場合、クエリの書き換えに必要な時間が増加する可能性があります。
- 複数の同時クエリがシステムリソースを使い果たし、クエリキューが使用される場合、
Pending時間が延長される可能性があります。 - 外部テーブルを含むクエリは、外部メタデータサーバーとの通信に追加の時間を要する可能性があります。
Example:
- -- Parser[1] 0
- -- Total[1] 3ms
- -- Analyzer[1] 0
- -- Lock[1] 0
- -- AnalyzeDatabase[1] 0
- -- AnalyzeTemporaryTable[1] 0
- -- AnalyzeTable[1] 0
- -- Transformer[1] 0
- -- Optimizer[1] 1ms
- -- MVPreprocess[1] 0
- -- MVTextRewrite[1] 0
- -- RuleBaseOptimize[1] 0
- -- CostBaseOptimize[1] 0
- -- PhysicalRewrite[1] 0
- -- DynamicRewrite[1] 0
- -- PlanValidate[1] 0
- -- InputDependenciesChecker[1] 0
- -- TypeChecker[1] 0
- -- CTEUniqueChecker[1] 0
- -- ColumnReuseChecker[1] 0
- -- ExecPlanBuild[1] 0
- -- Pending[1] 0
- -- Prepare[1] 0
- -- Deploy[1] 2ms
- -- DeployLockInternalTime[1] 2ms
- -- DeploySerializeConcurrencyTime[2] 0
- -- DeployStageByStageTime[6] 0
- -- DeployWaitTime[6] 1ms
- -- DeployAsyncSendTime[2] 0
- DeployDataSize: 10916
Reason:
Execution Overview Metrics
高レベルの実行統計:
| Metric | Description | Rule of Thumb |
|---|---|---|
| FrontendProfileMergeTime | FE 側のプロファイル処理時間 | < 10ms 正常 |
| QueryAllocatedMemoryUsage | ノード全体で割り当てられたメモリの合計 | |
| QueryDeallocatedMemoryUsage | ノード全体で解放されたメモリの合計 | |
| QueryPeakMemoryUsagePerNode | ノードごとの最大ピークメモリ | < 80% 容量正常 |
| QuerySumMemoryUsage | ノード全体でのピークメモリの合計 | |
| QueryExecutionWallTime | 実行のウォールタイム | |
| QueryCumulativeCpuTime | ノード全体での CPU 時間の合計 | walltime * totalCpuCores と比較 |
| QueryCumulativeOperatorTime | オペレーター実行時間の合計 | オペレーター時間の割合の分母 |
| QueryCumulativeNetworkTime | Exchange ノードのネットワーク時間の合計 | |
| QueryCumulativeScanTime | Scan ノードの IO 時間の合計 | |
| QueryPeakScheduleTime | 最大パイプラインスケジュール時間 | 単純なクエリでは < 1s 正常 |
| QuerySpillBytes | ディスクにスピルされたデータ | < 1GB 正常 |
Fragment Metrics
フラグメントレベルの実行詳細:
| Metric | Description |
|---|---|
| InstanceNum | FragmentInstances の数 |
| InstanceIds | すべての FragmentInstances の ID |
| BackendNum | 参加している BEs の数 |
| BackendAddresses | BE のアドレス |
| FragmentInstancePrepareTime | フラグメント準備フェーズの期間 |
| InstanceAllocatedMemoryUsage | インスタンスに割り当てられたメモリの合計 |
| InstanceDeallocatedMemoryUsage | インスタンスで解放されたメモリの合計 |
| InstancePeakMemoryUsage | インスタンス全体でのピークメモリ |