メインコンテンツまでスキップ
に最終更新

DML プランのチューニング:ロードとクエリのパフォーマンスボトルネックを特定する

チューニング前のチェックリスト​

DML プランのチューニングを始める前に、次の点を確認してください。

  • ロードフェーズとクエリフェーズで費やした時間を明確に区別できること。
  • Profile / Query Plan を確認し、実行時間が最も長いオペレーターまたはフェーズを特定していること。
  • ロードの概要を読み、用途に適したロード方式を把握していること。

チューニング対象の特定:ロードのボトルネックとクエリのボトルネック​

DML 文(INSERT INTO ... SELECT など)のパフォーマンスボトルネックは、通常、ロードとクエリのいずれかにあります。まず、どちらのフェーズにボトルネックがあるかを特定し、その結果に応じてチューニングします。

ボトルネックの種類典型的な症状チューニングの入口
ロードフェーズのボトルネック書き込みスループットが低く、Sink オペレーターにかかる時間が長い適切なロード方式とベストプラクティスを選ぶには、ロードの概要を参照してください
クエリフェーズのボトルネックScan、Join、集約などのオペレーターにかかる時間が長い診断とチューニングについては、プランのチューニングの他のセクションを参照してください

ロード側のチューニング​

Doris はさまざまなデータソースからのロードに対応しています。Doris が提供するロード機能を状況に応じて使い分けることで、異なるソースのデータを効率的に Doris に取り込み、分析に利用できます。

  • 目的:データソースとデータの即時性に関する要件に応じて適切なロード方式を選び、DML 全体のパフォーマンスを向上させます。
  • 参照先:ロードの概要。
  • 注記:ロード方式には Stream Load、Broker Load、Routine Load、INSERT などがあります。詳しいベストプラクティスは上記のリンクを参照してください。

クエリ側のチューニング​

ボトルネックがクエリフェーズにある場合は、プランのチューニングに関する他のセクションに従って診断と最適化を進めます。たとえば、テーブルスキーマの最適化、統計情報、結合順序、オペレーターの書き換えを検討します。詳しくはプランのチューニングを参照してください。

よくある質問​

Q1:DML 文の実行が遅い原因がロードフェーズとクエリフェーズのどちらにあるか、すばやく見分けるにはどうすればよいですか? Profile で各オペレーターにかかった時間を確認します。Sink/Load 関連のオペレーターに時間がかかっている場合、ボトルネックはロード側にあります。Scan/Join/Agg オペレーターに時間がかかっている場合は、クエリ側にあります。

Q2:INSERT INTO ... SELECT が遅い場合、最初にどこを確認すればよいですか? まず SELECT サブクエリが遅いかどうかを確認します。SELECT 単体では速く実行できる場合、ボトルネックは通常、書き込み側にあります。

Q3:すべてのロード方式を同じ方法でチューニングする必要がありますか? いいえ。Stream Load、Broker Load、Routine Load、INSERT など、ロード方式によって必要なチューニング方法は異なります。ロードの概要を参照してください。