クエリのパフォーマンス指標を把握する

[System Activity] の [Query Performance Metrics] には、Looker インスタンスから実行された各クエリの内訳が詳しく表示されます。

たとえば、この Explore を使用して、読み込みに最も時間がかかるクエリのコンポーネントを調べることができます。この Explore を使用して、クエリのパフォーマンスの傾向や異常を特定することもできます。

[System Activity] で使用できる Explore の詳細については、System Activity Explore を使用した Looker 使用状況レポートの作成に関するドキュメント ページをご覧ください。

クエリのパフォーマンス指標の確認

クエリ パフォーマンス指標は、System Activity の [Query Performance Metrics] で確認できます。クエリ パフォーマンス指標の Explore を表示するには、Looker 管理者であるか、see_system_activity 権限を持っている必要があります。

Looker のクエリのライフサイクルの把握

Looker がデータベースに送信する各クエリは複数のフェーズを通過し、それぞれにいくつかのステップがあります。これらの各ステップは、クエリのパフォーマンス指標の Explore でディメンションとして表されています。

フェーズの概要は次のとおりです。

  1. 非同期ワーカー フェーズ: まず、クエリ タスクを使用可能な非同期ワーカーに割り当てる必要があります。使用可能なワーカーがない場合、待機時間が発生する可能性があります。
  2. 初期化フェーズ: 非同期ワーカーが割り当てられると、Looker インスタンスが複数の初期化ステップを実行してクエリを準備します。
  3. 接続処理フェーズ: 初期化が完了すると、Looker インスタンスは顧客データベースへの接続を確立します。
  4. メインクエリ フェーズ: Looker インスタンスが顧客データベースへの接続を確立すると、メインクエリが顧客データベースに対して実行されます。クエリに対して選択されたオプションによっては、合計など、結果を計算するための追加のクエリも実行される可能性があります。クエリがストリーミングされない場合、クエリは Looker インスタンスのメモリに読み込まれます。その後、Looker インスタンスから顧客データベースへの接続が終了します。
  5. クエリ後のフェーズ: 最後に、Looker インスタンスはクエリ後のステップを複数実行して、クエリを次の宛先のために準備します。この時点で、非同期ワーカーが解放されます。

クエリのパフォーマンス指標

以降のセクションでは、各クエリのフェーズとクエリのステップを時系列順に示します。

非同期ワーカーフェーズの指標

クエリのステップ 指標の説明
Queued 非同期ワーカーがクエリを実行できるようになるまでクエリが待機するのに費やした時間(秒)。
Async processing 非同期ワーカーがクエリに費やした時間(秒)。クエリ後のフェーズが完了するまで、ワーカーはクエリの処理を継続するため、この指標はこのページの他のほとんどの指標と重複します。

初期化フェーズの指標

クエリのステップ 指標の説明
Model Init: From Cache キャッシュからモデル定義を pull するためにかかった時間(秒)。null 値が返される場合は、モデルがキャッシュから pull されずに読み込まれ、解析されたことを意味します(Model Init: Computed のステップをご覧ください)。
Model Init: Computed クエリの実行に必要なモデルの読み込みと解析にかかった時間(秒)。null 値が返される場合、モデルは最初から読み込まれて解析されたのではなく、キャッシュから取得されたことを意味します(Model Init: From Cache のステップをご覧ください)。
Explore Init: From Cache Explore の初期化をキャッシュから pull するためにかかった時間(秒)。null 値が返される場合は、Explore がキャッシュから pull されずに読み込まれ、解析されたことを意味します(Explore Init: Computed のステップをご覧ください)。
Explore Init: Computed prepare を開始するまでに Explore の初期化にかかった時間(秒)。null 値が返される場合、Explore は最初から読み込まれて解析されたのではなく、キャッシュから取得されたことを意味します(Explore Init: From Cache のステップをご覧ください)。
Prepare Explore の定義からクエリを準備するのにかかった時間(秒単位)。

接続処理フェーズの指標

クエリのステップ 指標の説明
Per User Throttler ユーザーがクエリを実行するための接続が利用可能になるまでクエリが待機に費やした時間(秒)。
Acquire Connection Looker インスタンスが顧客データベースに接続するのにかかった時間(秒)。これには、ユーザーの認証情報を検索し、接続プールがまだ存在しない場合は作成して、使用するために接続を初期化する時間も含まれます。
Connection Held Looker インスタンスが顧客データベースへの接続を維持した時間(秒)。これには、顧客データベースが SQL クエリを実行するのにかかった時間が含まれます。

クエリフェーズの主な指標

クエリのステップ 指標の説明
Cache Load 結果セットのキャッシュから未加工の結果を pull するのにかかった時間(秒)。
PDTs クエリに必要な永続的な派生テーブルの作成にかかった秒数。
Execute Main Query 顧客データベースで primary クエリを実行するのにかかった時間(秒)。これには、顧客データベースへの接続にかかった時間は含まれません。これは、大容量の結果の許可機能の使用を必要とするクエリについては追跡されません。
Execute Totals Query クエリを実行して顧客データベースの合計を生成するのにかかった時間(秒)。合計が有効なクエリにのみ適用されます。
Execute Row Totals Query クエリを実行して顧客データベースの行の合計を生成するのにかかった時間(秒)。行の合計が有効になっているクエリにのみ適用されます。
Execute Grand Totals Query クエリを実行して顧客データベースの総計を生成するのにかかった時間(秒)。合計行の合計の両方が有効になっているクエリにのみ適用されます。
Load Process and Stream Main Query (顧客データベースから)メインクエリを読み込み、(Looker インスタンス上で)処理してから(クライアントに)ストリーミングするのにかかった時間(秒)。ストリーミングされたクエリにのみ適用されます。
Load Main Query In Memory メイン クエリの結果が顧客データベースからメモリに読み込まれるまでにかかる時間(秒)。ストリーミングされていないクエリにのみ適用されます。
Load Totals Query In Memory クエリを読み込んで合計をメモリに生成するのにかかった時間(秒)。合計が有効な非ストリーミング クエリにのみ適用されます。
Load Row Totals Query In Memory クエリを読み込んで行の合計をメモリに生成するのにかかった時間(秒)。行の合計が有効な非ストリーミング クエリにのみ適用されます。
Load Grand Totals Query In Memory クエリを読み込んで総計をメモリに生成するのにかかった時間(秒)。合計行の合計の両方が有効になっている非ストリーミング クエリにのみ適用されます。

クエリ後のフェーズの指標

クエリのステップ 指標の説明
Postprocessing クエリの後処理にかかった時間(秒)。接続が終了してから発生します。
Stream to Cache 結果を処理してレンダリング キャッシュにストリーミングするのにかかった時間(秒)。

BigQuery BI Engine の指標

Looker で BigQuery BI Engine を使用している場合は、クエリ パフォーマンス指標の Explore を使用して、クエリに関するデータベース固有の情報を表示できます。BI Engine を使用しないクエリと、BigQuery データベース以外のデータベースのクエリは、これらの指標に対して null 値を返します。

指標 指標の説明
BigQuery Job ID クエリの BigQuery のジョブ ID。
BI Engine Mode クエリが部分的に実行されたか、完全に実行されたか。このフィールドに指定できる値の詳細については、BI Engine SQL インターフェースの概要をご覧ください。
BI Engine Reason クエリを完全に実行されなかった場合は、このフィールドに理由が表示されます。このメッセージは Google BigQuery から直接送信されます。

クエリのパフォーマンス指標を使用したトラブルシューティング

クエリ指標を分析すると、Looker インスタンスのパフォーマンスを向上させることができます。開始するには、[System Activity] ダッシュボードのリストから、[Performance Recommendations] ダッシュボードを選択します。