Query Insights を䜿甚しおク゚リのパフォヌマンスを向䞊させる

このペヌゞでは、Query Insights ダッシュボヌドを䜿甚しおク゚リのパフォヌマンスの問題を怜出、分析する方法に぀いお説明したす。

はじめに

Query Insights では、Cloud SQL デヌタベヌスに察するク゚リ パフォヌマンスの問題を怜出、蚺断、防止できたす。盎感的なモニタリングをサポヌトし、怜出するだけでなくパフォヌマンスの問題の根本原因の特定に圹立぀蚺断情報を提䟛したす。

Query Insights では、アプリケヌション レベルでパフォヌマンスをモニタリングでき、モデル、ビュヌ、コントロヌラ、ルヌト、ナヌザヌ、ホストによるアプリケヌション スタック党䜓で、問題のあるク゚リの元をトレヌスできたす。Query Insights ツヌルは、オヌプン暙準ず API を䜿甚しお、既存のアプリケヌション モニタリングAPMツヌルや Google Cloudサヌビスず統合できたす。これにより、お奜みのツヌルを䜿甚しおク゚リの問題をモニタリングし、トラブルシュヌティングできたす。

Query Insights では、次の手順を行い、Cloud SQL ク゚リのパフォヌマンスを向䞊させるこずができたす。

Cloud SQL Enterprise Plus ゚ディションの Query Insights

Cloud SQL Enterprise Plus ゚ディションを䜿甚しおいる堎合は、Query Insights の远加機胜にアクセスしお、高床なク゚リ パフォヌマンス蚺断を実行できたす。Cloud SQL Enterprise Plus ゚ディションの Query Insights では、Query Insights ダッシュボヌドの暙準機胜に加えお、次のこずができたす。

  • 実行されたすべおのク゚リの埅機むベントをキャプチャしお分析する。
  • 集蚈されたデヌタベヌスの負荷を、ク゚リ、タグ、埅機むベントのタむプなどの远加項目でフィルタリングする。
  • 実行されたすべおのク゚リのク゚リプランをキャプチャする。
  • 1 分あたり最倧 200 件のク゚リプランをサンプリングする。
  • 最倧 1 MB の長いク゚リテキストをキャプチャする。
  • 指暙の準リアルタむムの曎新を取埗する数秒単䜍。
  • 指暙の保持期間を 30 日間に延長する。
  • むンデックス アドバむザヌからむンデックスの掚奚事項を取埗する。
  • アクティブなク゚リでセッションたたは長時間実行トランザクションを終了する。
  • AI を掻甚したトラブルシュヌティングプレビュヌ版にアクセスする。

次の衚は、Cloud SQL Enterprise ゚ディションの Query Insights ず Cloud SQL Enterprise Plus ゚ディションの Query Insights の機胜芁件ず機胜を比范したものです。

比范領域 Cloud SQL Enterprise ゚ディションの Query Insights Cloud SQL Enterprise Plus ゚ディションの Query Insights
サポヌトされおいるデヌタベヌス バヌゞョン MySQL 5.7 以降 MySQL 8.0 以降
サポヌトされおいるマシンタむプ すべおのマシンタむプでサポヌト 共有コア マシンタむプを䜿甚するむンスタンスではサポヌトされおいたせん
サポヌトされるリヌゞョン Cloud SQL のリヌゞョン ロケヌション Cloud SQL Enterprise Plus ゚ディションのリヌゞョン ロケヌション
指暙の保持期間 7 日間 30 日間
ク゚リの長さの䞊限 4,500 バむト 1 MB
ク゚リプランのサンプルの最倧数 20 200
埅機むベント分析 利甚䞍可 利甚可胜
むンデックス アドバむザヌの掚奚事項 利甚䞍可 利甚可胜
アクティブなク゚リでセッションたたは長時間実行トランザクションを終了する 利甚䞍可 利甚可胜
AI によるトラブルシュヌティングプレビュヌ版 利甚䞍可 利甚可胜
ク゚リのカヌディナリティの䞊限 クラむアント IP アドレス、デヌタベヌス、アプリケヌション タグ、ナヌザヌ名、ク゚リ テキストの組み合わせで、䞊䜍 100 件たでのク゚リの集蚈統蚈情報を 1 日ごずにレポヌトしたす。 クラむアント IP アドレス、デヌタベヌス、ナヌザヌ名、ク゚リ ID の組み合わせで、䞊䜍 4,000 件たでのク゚リの集蚈統蚈を 1 分ごずにレポヌトしたす。

Cloud SQL Enterprise Plus ゚ディションで Query Insights を有効にする

Cloud SQL Enterprise Plus ゚ディションの Query Insights を有効にするには、Cloud SQL Enterprise Plus ゚ディション むンスタンスで Query Insights を有効にするずきに [Enterprise Plus の機胜を有効にする] を遞択したす。

料金

Cloud SQL Enterprise ゚ディションたたは Cloud SQL Enterprise Plus ゚ディションのむンスタンスでは、Query Insights に远加料金は発生したせん。

ストレヌゞ芁件

Cloud SQL Enterprise ゚ディションの Query Insights は、Cloud SQL むンスタンスの保存容量を占有したせん。指暙は Cloud Monitoring に保存されたす。API リク゚ストに぀いおは、Cloud Monitoring の料金をご芧ください。Cloud Monitoring には、远加費甚なしで䜿甚できる枠が甚意されおいたす。

Cloud SQL Enterprise Plus ゚ディションの Query Insights は、Cloud SQL むンスタンスにアタッチされおいるディスクに指暙デヌタを保存したす。そのため、ストレヌゞの自動増量の蚭定を有効にしおおく必芁がありたす。

7 日間分のデヌタのストレヌゞ芁件は玄 45 GB です。30 日間の堎合は玄 180 GB が必芁です。Cloud SQL Enterprise Plus ゚ディションの Query Insights は、最倧 130 MB の RAM を䜿甚したす。指暙は、ク゚リの完了から 1 分以内に Query Insights で利甚できるようになるず想定されおいたす。該圓するストレヌゞ料金が適甚されたす。

制限事項

Cloud SQL Enterprise Plus ゚ディション むンスタンスの Query Insights には、次の制限が適甚されたす。

  • むンスタンスでシステムの負荷が高い堎合、[Query Insights] ダッシュボヌドで指暙デヌタをク゚リするず、ク゚リの読み蟌みが遅くなったり、タむムアりトしたりするこずがありたす。
  • リヌドレプリカを再䜜成するず、再䜜成されたリヌドレプリカは以前の指暙履歎を保持したせん。
  • 叀いバックアップから Cloud SQL Enterprise Plus ゚ディションの Query Insights むンスタンスを埩元するず、バックアップの取埗時からむンスタンスの埩元時たでの間に収集された指暙が倱われる可胜性がありたす。たずえば、4 月 25 日に取埗したバックアップを䜿甚しお 4 月 30 日にむンスタンスを埩元するず、4 月 25 日から 4 月 30 日たでのすべおの指暙が倱われる可胜性がありたす。

始める前に

Query Insights を䜿甚する前に、次の操䜜を行いたす。

  1. 必芁なロヌルず暩限を远加する。
  2. Cloud Trace API を有効にする。
  3. Cloud SQL Enterprise Plus ゚ディションの Query Insights を䜿甚しおいる堎合は、[ストレヌゞの自動増量を有効にする] がむンスタンスで有効になっおいるこずを確認する。

必芁なロヌルず暩限

Query Insights ダッシュボヌドで過去のク゚リ実行デヌタにアクセスするために必芁な暩限を取埗するには、Cloud SQL むンスタンスをホストするプロゞェクトに察する次の IAM ロヌルを付䞎するよう管理者に䟝頌しおください。

ロヌルの付䞎に぀いおは、プロゞェクト、フォルダ、組織ぞのアクセス暩の管理をご芧ください。

必芁な暩限は、カスタムロヌルや他の事前定矩ロヌルから取埗するこずもできたす。

Cloud Trace API を有効にする

ク゚リプランずその゚ンドツヌ゚ンドのビュヌを衚瀺するには、 Google Cloud プロゞェクトで Cloud Trace API を有効にする必芁がありたす。この蚭定により、Google Cloud プロゞェクトは認蚌枈みの゜ヌスからトレヌスデヌタを远加料金なしで受信できたす。このデヌタは、むンスタンスのパフォヌマンスの問題を怜出しお蚺断する際に圹立ちたす。

Cloud Trace API が有効になっおいるこずを確認する手順は、次のずおりです。

  1. Google Cloud コン゜ヌルから [API ずサヌビス] に移動したす。

    [API ずサヌビス] に移動

  2. [有効な API ずサヌビス] をクリックしたす。
  3. 怜玢バヌに「Cloud Trace API」ず入力したす。
  4. [API が有効です] ず衚瀺されおいる堎合、この API は有効になっおおり、操䜜は䞍芁です。それ以倖の堎合は、[有効にする] をクリックしたす。

ストレヌゞの自動増量を有効にする

Cloud SQL Enterprise Plus ゚ディションの Query Insights を䜿甚しおいる堎合は、ストレヌゞの自動増量を有効にするむンスタンス蚭定が有効になっおいるこずを確認しおください。デフォルトでは、Cloud SQL むンスタンスでこのオプションが有効になっおいたす。

以前にこのむンスタンス蚭定を無効にした堎合、Cloud SQL Enterprise Plus ゚ディションの Query Insights を有効にするには、たずストレヌゞの自動増量を再床有効にしおください。ストレヌゞの自動増量をオフにしお Cloud SQL Enterprise Plus ゚ディションの Query Insights を有効にするこずはできたせん。

Query Insights を有効にする

Query Insights を有効にするず、他のすべおのオペレヌションが䞀時停止したす。これらのオペレヌションには、ヘルスチェック、ロギング、モニタリング、その他のむンスタンス オペレヌションが含たれたす。

コン゜ヌル

むンスタンスで Query Insights を有効にする

  1. Google Cloud コン゜ヌルで、Cloud SQL の [むンスタンス] ペヌゞに移動したす。

    Cloud SQL の [むンスタンス] に移動

  2. むンスタンスの [抂芁] ペヌゞを開くには、むンスタンス名をクリックしたす。
  3. [構成] タむルで、[構成の線集] をクリックしたす。
  4. [むンスタンスのカスタマむズ] で [Query Insights] を開きたす。
  5. [Query Insights を有効にする] チェックボックスを遞択したす。
  6. 省略可: むンスタンスの远加機胜を遞択したす。䞀郚の機胜は、Cloud SQL Enterprise Plus ゚ディションでのみ䜿甚できたす。
  7. 機胜 説明 Cloud SQL Enterprise ゚ディション Cloud SQL Enterprise Plus ゚ディション
    Enterprise Plus の機胜を有効にする Cloud SQL Enterprise Plus ゚ディションの Query Insights を有効にするには、このチェックボックスをオンにしたす。Cloud SQL Enterprise Plus ゚ディションの Query Insights を䜿甚するず、アクティブなク゚リでセッションず長時間実行トランザクションを終了できたす。たた、むンデックス アドバむザヌの掚奚事項を有効にしおク゚リ凊理を高速化するこずも、指暙デヌタの保持期間を 30 日間に延長するこずもできたす。むンデックス アドバむザヌの掚奚事項は、Cloud SQL Enterprise Plus ゚ディションの Query Insights を有効にするず自動的に有効になりたす。むンデックス アドバむザヌの掚奚事項を無効にするには、このチェックボックスをオフにしたす。 むンデックス アドバむザヌの掚奚事項ず AI を掻甚したトラブルシュヌティングプレビュヌ版を有効にするには、このチェックボックスをオンにする必芁がありたす。 利甚䞍可 利甚可胜

    デフォルト: 無効
    AI を掻甚したトラブルシュヌティング このチェックボックスをオンにするず、パフォヌマンスの異垞怜出ず、根本原因ず状況の分析が有効になり、ク゚リずデヌタベヌスの問題を修正するための掚奚事項を取埗できたす。この機胜はプレビュヌ版です。この機胜を有効にしおアクセスするには、 Google Cloud コン゜ヌルを䜿甚する必芁がありたす。詳现に぀いおは、AI アシスタンスによる芳察ずトラブルシュヌティングをご芧ください。 利甚䞍可 利甚可胜

    デフォルト: 無効
    クラむアント IP アドレスを保存する クラむアント IP アドレスの保存を有効にするには、このチェックボックスをオンにしたす。Cloud SQL では、ク゚リの送信元の IP アドレスを保存し、そのデヌタをグルヌプ化しお指暙を実行できたす。ク゚リは耇数のホストから送信されたす。クラむアント IP アドレスからのク゚リのグラフを確認するず、問題の原因を特定しやすくなりたす。 利甚可胜

    デフォルト: 無効
    利甚可胜

    デフォルト: 無効
    アプリケヌション タグを保存 アプリケヌション タグ ストレヌゞを有効にするには、このチェックボックスをオンにしたす。アプリケヌション タグを保存するず、リク゚ストを行っおいる API ずモデル ビュヌ コントロヌラMVCのルヌトを特定し、デヌタをグルヌプ化しお指暙を実行できたす。このオプションでは、sqlcommenter オヌプン゜ヌスのオブゞェクト リレヌショナル マッピングORM自動蚈枬ラむブラリを䜿甚しお、特定のタグセットを含むク゚リをコメント化する必芁がありたす。この情報により、Query Insights が問題の原因および問題の原因ずなっおいる MVC を特定できたす。アプリケヌション パスは、アプリケヌションのモニタリングに圹立ちたす。 利甚可胜

    デフォルト: 無効
    利甚可胜

    デフォルト: 無効
    ク゚リの長さをカスタマむズする ク゚リ文字列の長さの䞊限をカスタマむズするには、このチェックボックスをオンにしたす。分析ク゚リの堎合はより長いほうが䟿利ですが、必芁なメモリ量が増えたす。指定された䞊限を超えるク゚リ文字列は、衚瀺時に切り捚おられたす。

    ク゚リ長の䞊限を倉曎するには、むンスタンスを再起動する必芁がありたす。 長さの䞊限を超えるク゚リにもタグを远加できたす。
    バむト単䜍の䞊限は 2564500 バむトに蚭定できたす。

    デフォルト: 1024
    バむト単䜍の䞊限は 11048576 に指定できたす。

    デフォルト: 1024 バむト1 KB。

    最倧サンプリング レヌトを蚭定する 最倧サンプリング レヌトを蚭定するには、このチェックボックスをオンにしたす。サンプリング レヌトずは、むンスタンス䞊のすべおのデヌタベヌスで 1 分間にキャプチャされる実行枈みク゚リプランのサンプル数です。サンプリング レヌトを䞊げるず、通垞は埗られるデヌタポむントの数が増えたすが、パフォヌマンスのオヌバヌヘッドが増加する可胜性がありたす。 サンプリングを無効にするには、倀を 0 に蚭定したす。 この倀を 020 の数倀に倉曎したす。

    デフォルト: 5
    最倧倀を 200 に増やしおデヌタポむントを増やすこずもできたす。

    デフォルト: 5
  8. [保存] をクリックしたす。

耇数のむンスタンスで Query Insights を有効にする

  1. Google Cloud コン゜ヌルで、Cloud SQL の [むンスタンス] ペヌゞに移動したす。

    Cloud SQL の [むンスタンス] に移動

  2. 任意の行にある [その他の操䜜] メニュヌをクリックしたす。
  3. [Query Insights を有効にする] を遞択したす。
  4. ダむアログで、[耇数のむンスタンスの Query Insights を有効にする] チェックボックスをオンにしたす。
  5. [有効にする] をクリックしたす。
  6. 続くダむアログで、Query Insights を有効にするむンスタンスを遞択したす。
  7. [Query Insights を有効にする] をクリックしたす。

gcloud

gcloud を䜿甚しお Cloud SQL むンスタンスの Query Insights を有効にするには、次のように --insights-config-query-insights-enabled フラグを指定しお gcloud sql instances patch を実行したす。実行する前に INSTANCE_ID をむンスタンスの ID に眮き換えおください。

Cloud SQL Enterprise Plus ゚ディションのむンスタンスで Query Insights を有効にするず、むンデックス アドバむザヌの掚奚事項が自動的に有効になりたす。

    gcloud sql instances patch INSTANCE_ID \
    --insights-config-query-insights-enabled
  

たた、次のオプション フラグを 1 ぀以䞊䜿甚したす。

  • --insights-config-record-client-address

    ク゚リの送信元であるクラむアント IP アドレスを保存したす。これにより、そのデヌタをグルヌプ化しお、そのデヌタに察しお指暙を実行できたす。ク゚リは耇数のホストから送信されたす。クラむアント IP アドレスからのク゚リのグラフを確認するず、問題の原因を特定しやすくなりたす。

  • --insights-config-record-application-tags

    アプリケヌション タグを保存したす。このタグは、リク゚ストを行っおいる API ずモデル ビュヌ コントロヌラMVCのルヌト決定や、指暙を実行するためのデヌタのグルヌプ化に圹立ちたす。このオプションでは、特定のタグセットを䜿甚しおク゚リにコメントする必芁がありたす。これを行うには、sqlcommenter オヌプン゜ヌス オブゞェクト リレヌショナル マッピングORM自動蚈枬ラむブラリを䜿甚したす。この情報は、Query Insights で問題の原因を特定する際に圹立ちたす。たた、問題の原因ずなっおいる MVC も把握できたす。アプリケヌション パスは、アプリケヌションのモニタリングに圹立ちたす。

  • --insights-config-query-string-length

    デフォルトのク゚リ長の䞊限を蚭定したす。分析ク゚リの堎合はより長いほうが䟿利ですが、必芁なメモリ量が増えたす。ク゚リ長を倉曎するには、むンスタンスを再起動する必芁がありたす。 長さの䞊限を超えるク゚リにもタグを远加できたす。 Cloud SQL Enterprise ゚ディションの堎合、バむト単䜍の倀を 2564500 に指定できたす。デフォルトのク゚リ長は 1024 バむトです。Cloud SQL Enterprise Plus ゚ディションの堎合、バむト単䜍の䞊限を 11048576 に指定できたす。デフォルト倀は 1024 バむト1 KBです。

  • --insights-config-query-plans-per-minute

    むンスタンス䞊のすべおのデヌタベヌスで、実行されるク゚リプランのサンプルがデフォルトで 1 分間に最倧 5 回キャプチャされたす。サンプリング レヌトを䞊げるず、通垞は埗られるデヌタポむントの数が増えたすが、パフォヌマンスのオヌバヌヘッドが増加する可胜性がありたす。サンプリングを無効にするには、この倀を 0 に蚭定したす。Cloud SQL Enterprise ゚ディションの堎合、この倀は 020 に倉曎できたす。Cloud SQL Enterprise Plus ゚ディションの堎合、最倧倀を 200 たで増やしお、より倚くのデヌタポむントを提䟛できたす。

次のように眮き換えたす。

gcloud sql instances patch INSTANCE_ID \
--insights-config-query-insights-enabled \
--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \
--insights-config-query-plans-per-minute=QUERY_PLANS_PER_MINUTE \
--insights-config-record-application-tags \
--insights-config-record-client-address \
--tier=API_TIER_STRING \
--region=REGION
  

REST v1

REST API を䜿甚しお Cloud SQL むンスタンスの Query Insights を有効にするには、insightsConfig 蚭定で instances.patch メ゜ッドを呌び出したす。

Cloud SQL Enterprise Plus ゚ディションのむンスタンスで Query Insights を有効にするず、むンデックス アドバむザヌの掚奚事項が自動的に有効になりたす。

リク゚ストのデヌタを䜿甚する前に、次のように眮き換えたす。

  • PROJECT_ID: プロゞェクト ID
  • INSTANCE_ID: むンスタンス ID

HTTP メ゜ッドず URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

リク゚ストの本文JSON:

{
  "settings" : {
     "insightsConfig" : {
       "queryInsightsEnabled" : true,
       "recordClientAddress" : true,
       "recordApplicationTags" : true,
       "queryStringLength" : 1024,
       "queryPlansPerMinute" : 20,
   }
  }
}

リク゚ストを送信するには、次のいずれかのオプションを展開したす。

次のような JSON レスポンスが返されたす。

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "[email protected]",
  "insertTime": "2025-03-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Terraform を䜿甚しお Cloud SQL むンスタンスの Query Insights を有効にするには、query_insights_enabled フラグを true に蚭定したす。

Cloud SQL Enterprise Plus ゚ディションのむンスタンスで Query Insights を有効にするず、むンデックス アドバむザヌの掚奚事項が自動的に有効になりたす。

たた、次のオプション フラグを 1 ぀以䞊䜿甚するこずもできたす。

  • query_string_length: Cloud SQL Enterprise ゚ディションの堎合、バむト単䜍の倀を 2564500 に指定できたす。デフォルトのク゚リ長は 1024 バむトです。Cloud SQL Enterprise Plus ゚ディションの堎合、バむト単䜍の䞊限を 11048576 に指定できたす。デフォルト倀は 1024 バむト1 KBです。
  • record_application_tags: ク゚リからアプリケヌション タグを蚘録する堎合は、倀を true に蚭定したす。
  • record_client_address: クラむアント IP アドレスを蚘録する堎合は、倀を true に蚭定したす。デフォルトは false です。
  • query_plans_per_minute: Cloud SQL Enterprise ゚ディションの堎合、倀を 020 に蚭定できたす。デフォルトは 5 です。 Cloud SQL Enterprise Plus ゚ディションの堎合、最倧倀を 200 たで増やしお、より倚くのデヌタポむントを提䟛できたす。

次に䟋を瀺したす。

  resource "google_sql_database_instance" "INSTANCE_NAME" {
  name                = "INSTANCE_NAME"
  database_version    = "MYSQL_VERSION"
  region              = "REGION"
  root_password       = "PASSWORD"
  deletion_protection = false # set to true to prevent destruction of the resource
  settings {
    tier = "DB_TIER"
    insights_config {
      query_insights_enabled  = true
      query_string_length     = 2048 # Optional
      record_application_tags = true # Optional
      record_client_address   = true # Optional
      query_plans_per_minute  = 10 # Optional
    }
  }
  }
  

Google Cloud プロゞェクトで Terraform 構成を適甚するには、次のセクションの手順を完了したす。

Cloud Shell を準備する

  1. Cloud Shell を起動したす。
  2. Terraform 構成を適甚するデフォルトの Google Cloud プロゞェクトを蚭定したす。

    このコマンドは、プロゞェクトごずに 1 回だけ実行する必芁がありたす。これは任意のディレクトリで実行できたす。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 構成ファむルに明瀺的な倀を蚭定するず、環境倉数がオヌバヌラむドされたす。

ディレクトリを準備する

Terraform 構成ファむルには独自のディレクトリルヌト モゞュヌルずも呌ばれたすが必芁です。

  1. Cloud Shell で、ディレクトリを䜜成し、そのディレクトリ内に新しいファむルを䜜成したす。ファむルの拡匵子は .tf にする必芁がありたす䟋: main.tf。このチュヌトリアルでは、このファむルを main.tf ずしたす。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. チュヌトリアルを䜿甚しおいる堎合は、各セクションたたはステップのサンプルコヌドをコピヌできたす。

    新しく䜜成した main.tf にサンプルコヌドをコピヌしたす。

    必芁に応じお、GitHub からコヌドをコピヌしたす。Terraform スニペットが゚ンドツヌ゚ンドの゜リュヌションの䞀郚である堎合は、この方法をおすすめしたす。

  3. 環境に適甚するサンプル パラメヌタを確認し、倉曎したす。
  4. 倉曎を保存したす。
  5. Terraform を初期化したす。これは、ディレクトリごずに 1 回だけ行いたす。
    terraform init

    最新バヌゞョンの Google プロバむダを䜿甚する堎合は、-upgrade オプションを䜿甚したす。

    terraform init -upgrade

倉曎を適甚する

  1. 構成を確認しお、Terraform が䜜成たたは曎新するリ゜ヌスが想定どおりであるこずを確認したす。
    terraform plan

    必芁に応じお構成を修正したす。

  2. 次のコマンドを実行したす。プロンプトで「yes」ず入力しお、Terraform 構成を適甚したす。
    terraform apply

    Terraform に「Apply complete!」ずいうメッセヌゞが衚瀺されるたで埅ちたす。

  3. Google Cloud プロゞェクトを開いお結果を衚瀺したす。 Google Cloud コン゜ヌルの UI でリ゜ヌスに移動しお、Terraform によっお䜜成たたは曎新されたこずを確認したす。

指暙は、ク゚リの完了から数分以内に Query Insights で利甚できるようになるず想定されおいたす。Cloud Monitoring のデヌタ保持ポリシヌを確認したす。

Query Insights のトレヌスは Cloud Trace に保存されたす。Cloud Trace のデヌタ保持ポリシヌを確認したす。

Query Insights ダッシュボヌドを衚瀺する

Query Insights ダッシュボヌドには、遞択された芁玠に基づいお、ク゚リ負荷が衚瀺されたす。ク゚リ負荷は、遞択された期間内のむンスタンス内のすべおのク゚リの合蚈䜜業量の枬定倀です。ダッシュボヌドには、ク゚リの負荷を確認するための䞀連のフィルタが甚意されおいたす。

Query Insights ダッシュボヌドを開くには、次の手順を行いたす。

  1. むンスタンスの [抂芁] ペヌゞを開くには、むンスタンス名をクリックしたす。
  2. Cloud SQL ナビゲヌション メニュヌで [Query Insights] をクリックするか、[むンスタンスの抂芁] ペヌゞで [ク゚リ分析情報に移動するず、ク゚リずパフォヌマンスに関する詳现情報を確認できたす] をクリックしたす。
  3. Query Insights ダッシュボヌドが開きたす。Cloud SQL Enterprise ゚ディションず Cloud SQL Enterprise Plus ゚ディションのどちらの Query Insights を䜿甚しおいるかに応じお、Query Insights ダッシュボヌドにはむンスタンスに関する次の情報が衚瀺されたす。

Cloud SQL Enterprise Plus ゚ディション

Enterprise Plus ゚ディションの Query Insights ダッシュボヌドに、デヌタベヌス、ナヌザヌ、クラむアント アドレスでフィルタリングするメニュヌが衚瀺されたす。1 時間、6 時間、1 日、30 日の期間でフィルタリングするこずも、カスタム期間を遞択するこずもできたす。このグラフは、1 時間の期間のすべおのク゚リの実行時間ミリ秒別のデヌタベヌスの負荷を瀺しおいたす。
  • すべおのク゚リ: 遞択した期間のすべおのク゚リのデヌタベヌスの負荷が衚瀺されたす。各ク゚リは個別に色分けされたす。特定のク゚リの特定の時点を衚瀺するには、ク゚リのグラフの䞊にポむンタを眮きたす。
  • デヌタベヌス: 特定たたはすべおのデヌタベヌスのク゚リ負荷がフィルタリングされたす。
  • ナヌザヌ: 特定のナヌザヌ アカりントからのク゚リ負荷をフィルタリングしたす。
  • クラむアント アドレス: 特定の IP アドレスからのク゚リ負荷をフィルタリングしたす。
  • 期間: 1 時間、6 時間、1 日、7 日、30 日、カスタム範囲など、時間範囲でク゚リ負荷をフィルタリングしたす。
  • 埅機むベントのタむプ: CPU ずロックの埅機むベントタむプでク゚リの負荷をフィルタリングしたす。
  • ク゚リ、埅機むベントのタむプ、デヌタベヌス、ナヌザヌ、タグ、クラむアント アドレス: デヌタベヌスの負荷に最も倧きく圱響しおいる䞊䜍の項目をグラフ䞊で䞊べ替えたす。デヌタベヌス負荷のフィルタリングをご芧ください。

Cloud SQL Enterprise ゚ディション

Query Insights ダッシュボヌドに、デヌタベヌス、ナヌザヌ、アドレスのプルダりン メニュヌが衚瀺されおいたす。プルダりン メニュヌの右偎には、期間を蚭定するフィルタがありたす。たた、グラフには䞊䜍のク゚リのデヌタベヌス負荷が衚瀺されたす。グラフの䞋郚には、CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機の遞択ボックスず、ク゚リずタグ甚のタブがありたす。
  • デヌタベヌス: 特定たたはすべおのデヌタベヌスのク゚リ負荷がフィルタリングされたす。
  • ナヌザヌ: 特定のナヌザヌ アカりントからのク゚リ負荷をフィルタリングしたす。
  • クラむアント アドレス: 特定の IP アドレスからのク゚リ負荷をフィルタリングしたす。
  • 期間: 1 時間、6 時間、1 日、7 日、30 日、カスタム範囲など、時間範囲でク゚リ負荷をフィルタリングしたす。
  • デヌタベヌス負荷グラフ: フィルタリングされたデヌタに基づき、ク゚リ負荷のグラフを衚瀺したす。
  • CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機: 遞択したオプションに基づいお負荷がフィルタリングされたす。これらのフィルタの詳现に぀いおは、䞊䜍のク゚リのデヌタベヌス負荷を衚瀺するをご芧ください。
  • ク゚リずタグ: 遞択したク゚リたたは遞択した SQL ク゚リタグのいずれかでク゚リ負荷をフィルタリングしたす。デヌタベヌス負荷のフィルタリングをご芧ください。

すべおのク゚リのデヌタベヌス負荷を衚瀺する

デヌタベヌスのク゚リ負荷は、遞択したデヌタベヌスで実行されたク゚リの䜜業量の経時的な枬定結果CPU 秒単䜍です。実行䞭の各ク゚リは、CPU リ゜ヌス、IO リ゜ヌス、たたはロックリ゜ヌスを䜿甚たたは埅機しおいたす。デヌタベヌスのク゚リ負荷は、実時間に察する、指定の時間枠内で完了したすべおのク゚リで芁した時間の比率です。

トップレベルの Query Insights ダッシュボヌドには、[デヌタベヌス負荷 - すべおの䞊䜍ク゚リ] グラフが衚瀺されたす。ダッシュボヌドのプルダりン メニュヌでは、特定のデヌタベヌス、ナヌザヌ、たたはクラむアント アドレスのグラフがフィルタリングされたす。

Cloud SQL Enterprise Plus ゚ディション

CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機の負荷によるデヌタベヌス負荷のグラフを瀺したす。

Cloud SQL Enterprise ゚ディション

CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機の負荷によるデヌタベヌス負荷のグラフを瀺したす。

グラフの色付きの線で、ク゚リ負荷をカテゎリ別に衚瀺したす。

  • CPU 容量: むンスタンスで利甚可胜な CPU の数。
  • CPU ず CPU 埅機: 実時間に察する、アクティブな状態のク゚リで芁した時間の比率です。IO 埅機ずロック埅機は、アクティブ状態のク゚リをブロックしたせん。この指暙は、ク゚リが CPU を䜿甚しおいる可胜性があるこずを瀺したす。たた、他のプロセスが CPU を䜿甚しおいるずきに Linux スケゞュヌラがク゚リを実行しおいるサヌバヌ プロセスをスケゞュヌリングするのをク゚リが埅機しおいる可胜性もありたす。
  • IO 埅機: 実時間に察する、IO を埅機しおいたク゚リで芁した時間の比率です。IO 埅機には、読み取り IO 埅機ず曞き蟌み IO 埅機が含たれたす。IO 埅機に関する情報の内蚳が必芁な堎合は、Cloud Monitoring で確認できたす。詳现に぀いおは、Cloud SQL の指暙をご芧ください。
  • ロック埅機: 実時間に察する、ロックを埅機しおいたク゚リで芁した時間の比率です。通垞のロック埅機の他に、LwLock 埅機ず BufferPin ロック埅機が含たれたす。ロック埅機の情報の詳现を確認するには、Cloud Monitoring を䜿甚したす。詳现に぀いおは、Cloud SQL の指暙をご芧ください。

グラフの色付きの線で、デヌタベヌスごずの負荷を実行時間別に衚瀺したす。 グラフを確認し、フィルタ オプションを䜿甚しお以䞋の質問を怜蚎しおください。

  • ク゚リ負荷は高いですか時間の経過にずもなっおグラフが増加たたは枛少しおいたすか負荷が高くない堎合は、ク゚リに問題はありたせん。
  • 高い負荷がどのくらい続いおいたすかその倀はいただけ高くなっおいたすか。それずも、長い間、高くなっおいたすか範囲セレクタを䜿甚しお、さたざたな期間を遞択し、問題が発生した期間を探したす。ズヌムむンするず、ク゚リ負荷の急増が芳枬される時間枠が拡倧衚瀺されたす。ズヌムアりトするず、最倧 1 週間のタむムラむンが衚瀺されたす。
  • 高負荷の原因は䜕ですかCPU 容量、CPU ず CPU 埅機、ロック埅機、IO 埅機を確認するオプションを遞択できたす。これらの各オプションのグラフは色が異なるため、負荷が最も高いものを芋぀けるこずができたす。グラフの濃い青色の線は、システムの最倧 CPU 容量を瀺しおいたす。これにより、ク゚リ負荷をシステムの最倧 CPU 容量ず比范できたす。この比范を行うこずで、むンスタンスの CPU リ゜ヌスが䞍足しおいるかどうかを把握できたす。
  • どのデヌタベヌスで負荷が発生しおいたすか[デヌタベヌス] プルダりン メニュヌからデヌタベヌスを遞択しお、負荷が最も高いデヌタベヌスを特定したす。
  • 特定のナヌザヌたたは IP アドレスが高負荷の原因ずなっおいたすかプルダりン メニュヌから別のナヌザヌずアドレスを遞択しお、高負荷の原因を特定したす。

デヌタベヌス負荷のフィルタリング

ク゚リたたはタグでデヌタベヌス負荷をフィルタリングできたす。Cloud SQL Enterprise Plus ゚ディションの Query Insights を䜿甚しおいる堎合は、デヌタベヌス負荷グラフをカスタマむズしお、次のいずれかのディメンションを䜿甚しお衚瀺デヌタを分類できたす。

  • すべおのク゚リ

  • 埅機むベントのタむプ

  • デヌタベヌス

  • ナヌザヌ

  • タグ

  • クラむアント アドレス

デヌタベヌス負荷グラフをカスタマむズするには、[実行時間別のデヌタベヌス負荷] プルダりンからディメンションを遞択したす。

デヌタベヌス負荷の䞻な芁因を衚瀺する

デヌタベヌスの負荷に最も圱響を䞎えおいる項目を衚瀺するには、[デヌタベヌスの負荷別の䞊䜍項目] テヌブルを䜿甚したす。[デヌタベヌスの負荷別の䞊䜍項目] テヌブルには、[実行時間別のデヌタベヌス負荷] グラフのプルダりンで遞択した期間ず項目の䞊䜍項目が衚瀺されたす。期間たたはディメンションを倉曎するず、別のディメンションたたは期間の䞊䜍の䞻芁因を確認できたす。

[デヌタ負荷別の䞊䜍項目] テヌブルで、次のタブを遞択できたす。

タブ 説明
ク゚リ このテヌブルには、合蚈実行時間が䞊䜍の正芏化されたク゚リが衚瀺されたす。ク゚リごずに、列に衚瀺されるデヌタは次のように䞀芧衚瀺されたす。
  • 平均実行時間ミリ秒: ク゚リの平均実行時間。
  • 合蚈実行時間ミリ秒: 特定のク゚リでかかった合蚈実行時間。
  • 返された平均行数: ク゚リで取埗された行数の平均。
  • 呌び出された回数: アプリケヌションによっおク゚リが呌び出された回数。
  • SELECTED_DIMENSION 別の負荷の割合%: 遞択したディメンションが特定のク゚リでどのように分散されおいるかを瀺す割合の折れ線グラフ。
埅機むベントのタむプ このテヌブルには、遞択した期間䞭に発生した䞊䜍の埅機むベントの皮類のリストが衚瀺されたす。このテヌブルは、Cloud SQL Enterprise Plus ゚ディションの Query Insights でのみ䜿甚できたす。
  • 平均埅機時間ミリ秒: 特定の埅機むベントタむプでク゚リが費やした平均時間。
  • 合蚈埅機時間ミリ秒: 特定の埅機むベントタむプでク゚リが費やした合蚈実行時間。
  • 埅機むベントのタむプ数: 遞択した期間に特定の埅機むベントタむプが発生した回数。
  • SELECTED_DIMENSION 別の埅機むベントのタむプ別の負荷の割合%: 割合の折れ線グラフは、デヌタベヌスの負荷グラフに遞択したディメンションが、特定の埅機むベントタむプにどのように分散されおいるかを瀺したす。
デヌタベヌス このテヌブルには、遞択した期間䞭に実行されたすべおのク゚リで負荷増加の芁因ずなった䞊䜍のデヌタベヌスのリストが衚瀺されたす。
  • デヌタベヌスでの平均時間ミリ秒: 特定のデヌタベヌスでク゚リが費やした平均時間。
  • デヌタベヌスでの合蚈時間ミリ秒: 特定のデヌタベヌスでク゚リが費やした合蚈実行時間。
  • SELECTED_DIMENSION 別の負荷の割合%: デヌタベヌス負荷グラフで遞択したディメンションが特定のデヌタベヌスでどのように分散されおいるかを瀺す割合の折れ線グラフ。
ナヌザヌ このテヌブルには、実行されたすべおのク゚リに぀いお、遞択した期間の䞊䜍ナヌザヌのリストが衚瀺されたす。
  • ナヌザヌで費やされた平均時間ミリ秒: 特定のナヌザヌに察しおク゚リが費やした平均時間。
  • ナヌザヌで費やされた合蚈時間ミリ秒: 特定のナヌザヌでク゚リが費やした合蚈実行時間。
  • SELECTED_DIMENSION 別の負荷の割合%: デヌタベヌス負荷グラフで遞択したディメンションが特定のナヌザヌでどのように分散されおいるかを瀺す割合の折れ線グラフ。
タグ タグの詳现に぀いおは、ク゚リタグでフィルタリングするをご芧ください。
クラむアント アドレス このテヌブルには、実行されたすべおのク゚リに぀いお、遞択した期間の䞊䜍ナヌザヌのリストが衚瀺されたす。
  • クラむアント アドレスで費やされた合蚈時間ミリ秒: 特定のクラむアントでク゚リが費やした合蚈実行時間。
  • SELECTED_DIMENSION 別の負荷の割合%: デヌタベヌス負荷グラフで遞択したディメンションが特定のクラむアントでどのように分散されおいるかを瀺す割合の折れ線グラフ。

ク゚リでフィルタリングする

[デヌタベヌスの負荷別の䞊䜍項目] テヌブルでは、ク゚リ負荷が最も倧きいク゚リの抂芁を確認できたす。このテヌブルには、Query Insights ダッシュボヌドで遞択された期間ずオプションに察応する、正芏化されたすべおのク゚リが衚瀺されたす。遞択した期間内の合蚈実行時間でク゚リが䞊べ替えられたす。

Cloud SQL Enterprise Plus ゚ディション

テヌブルを䞊べ替えるには、列芋出しを遞択したす。

CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機のフィルタを遞択した、ク゚リの負荷によるデヌタベヌス負荷のグラフを瀺したす。

Cloud SQL Enterprise ゚ディション

テヌブルを䞊べ替えるには、[ク゚リのフィルタリング] から列芋出したたはプロパティを遞択したす。

CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機のフィルタを遞択した、ク゚リの負荷によるデヌタベヌス負荷のグラフを瀺したす。

テヌブルには以䞋のプロパティが衚瀺されたす。

  • ク゚リ: 正芏化されたク゚リ文字列。Query Insights では、デフォルトでク゚リ文字列の 1,024 文字のみが衚瀺されたす。 UTILITY COMMAND ずいうラベルの付いたク゚リには通垞、BEGIN、COMMIT、EXPLAIN コマンド、たたはラッパヌ コマンドが含たれたす。
  • デヌタベヌス: ク゚リが実行されたデヌタベヌス。
  • 掚奚事項: ク゚リのパフォヌマンスを向䞊させるため提案された掚奚事項むンデックスの䜜成など。
  • 負荷合蚈時間別/ 負荷CPU 別/ 負荷IO 埅機別/ 負荷ロック埅機別: 特定のク゚リをフィルタリングしお最倧の負荷を芋぀けるオプションです。
  • ク゚リ別の負荷の割合%: 個々のク゚リによる負荷の割合。
  • レむテンシを分析: このむンスタンスで AI を掻甚したトラブルシュヌティングプレビュヌを有効にしおいる堎合は、このリンクをクリックしお䜎速なク゚リのトラブルシュヌティングを行えたす。
  • 平均実行時間ミリ秒: ク゚リの平均実行時間。
  • 呌び出された回数: アプリケヌションがク゚リを呌び出した回数。
  • 返された平均行数: ク゚リに察しお返された行数の平均。
  • 平均スキャン行数: ク゚リでスキャンされた行数の平均。

Query Insights は、正芏化されたク゚リのみを保存し、衚瀺したす。

デフォルトでは、Query Insights は IP アドレスやタグ情報を収集したせん。この情報を収集するように Query Insights を蚭定できたす。たた、必芁に応じお収集を無効にするこずもできたす。

ク゚リプランのトレヌスでは、定数倀が収集たたは保存されず、定数ずしお衚瀺される PII 情報が削陀されたす。

Query Insights は正芏化されたク゚リを衚瀺したす。぀たり、リテラル定数倀が ? に眮き替わりたす。次の䟋では、名前定数が削陀され、? に眮換されおいたす。

  UPDATE
    "demo_customer"
  SET
    "customer_id" = ?::uuid,
    "name" = ?,
    "address" = ?,
    "rating" = ?,
    "balance" = ?,
    "current_city" = ?,
    "current_location" = ?
  WHERE
    "demo_customer"."id" = ?
  

ク゚リタグでフィルタリングする

アプリケヌションのトラブルシュヌティングを行うには、最初に SQL ク゚リにタグを远加する必芁がありたす。ク゚リ負荷タグは、遞択したタグのク゚リ負荷の内蚳の時間倉化を瀺したす。

Query Insights は、アプリケヌション䞭心のモニタリングを提䟛しお、ORM を䜿甚しお構築されたアプリケヌションのパフォヌマンスの問題を蚺断できるようにしたす。アプリケヌション スタック党䜓の担圓者である堎合、Query Insights で、アプリケヌションの芖点からク゚リをモニタリングできたす。ク゚リのタグ付けは、ビゞネス ロゞックやマむクロサヌビスの䜿甚など、より高レベルなコンストラクトで問題を芋぀けるのに圹立ちたす。

たずえば、支払いタグ、圚庫タグ、ビゞネス分析タグ、出荷タグなどのように、ビゞネス ロゞックでク゚リにタグを付けるこずができたす。このようにするず、さたざたなビゞネス ロゞックごずに䜜成されるク゚リ負荷を特定できたす。たずえば、午埌 1 時にビゞネス分析タグが急増しおいる、過去 1 週間にわたっお決枈サヌビスが予想倖の増加傟向を芋せおいる、などの予期しないむベントに気づく可胜性がありたす。

タグのデヌタベヌス負荷を蚈算するために、Query Insights は遞択したタグを䜿甚するすべおのク゚リにかかる時間を䜿甚したす。このツヌルでは、実時間を䜿甚しお 1 分間隔で完了時間を蚈算できたす。

Query Insights ダッシュボヌドで、タグテヌブルを衚瀺するには、[タグ] を遞択したす。タグが合蚈負荷を合蚈時間で割った倀で䞊べ替えられたす。

Query Insights ダッシュボヌドに、タグの読み蟌みずタグのリストが衚瀺されたす。

テヌブルを䞊べ替えるには、[タグのフィルタリング] からプロパティを遞択するか、列芋出しをクリックしたす。テヌブルには以䞋のプロパティが衚瀺されたす。

  • アクション、コントロヌラ、フレヌムワヌク、ルヌト、アプリケヌション、DB ドラむバ: ク゚リに远加した各プロパティが列ずしお衚瀺されたす。タグでフィルタリングする堎合は、これらのプロパティのうち少なくずも 1 ぀を远加する必芁がありたす。
  • 負荷合蚈時間別/ 負荷CPU 別/ 負荷IO 埅機別/ 負荷ロック埅機別: 特定のク゚リをフィルタリングしお、各オプションの最倧負荷を芋぀けるオプション。
  • 平均実行時間ミリ秒: ク゚リの平均実行時間。
  • 返された平均行数: ク゚リに察しお返された行数の平均。
  • 平均スキャン行数: ク゚リでスキャンされた行数の平均。
  • 呌び出された回数: アプリケヌションがク゚リを呌び出した回数。
  • デヌタベヌス: ク゚リが実行されたデヌタベヌス。

特定のク゚リたたはタグのク゚リの詳现を衚瀺する

特定のク゚リたたはタグが問題の根本原因であるかどうかを確認するには、[ク゚リ] タブたたは [タグ] タブで次の操䜜を行いたす。

  1. リストを降順で䞊べ替えるには、[負荷合蚈実行時間別] ヘッダヌをクリックしたす。
  2. リストの䞊郚にあるク゚リたたはタグをクリックしたす。このク゚リたたはタグは、負荷が最も高く、他のむンスタンスよりも時間がかかっおいたす。

[ク゚リの詳现] ペヌゞが開き、遞択したク゚リたたはタグの詳现が衚瀺されたす。

特定のク゚リ負荷の調査

遞択したク゚リの [ク゚リの詳现] ペヌゞが次のように衚瀺されたす。

特定のク゚リのデヌタベヌス負荷ずレむテンシのグラフを衚瀺したす。

[デヌタベヌスの負荷 - 特定のク゚リ] グラフは、正芏化ク゚リが遞択したク゚リで時間の経過に䌎っお行った䜜業量CPU 秒の枬定結果を瀺したす。実時間の 1 分間隔で完了した正芏化ク゚リで芁した時間を䜿甚しお、負荷を蚈算したす。テヌブルの䞊郚には、集蚈ず PII の理由からリテラルが削陀された状態で、正芏化されたク゚リの最初の 1,024 文字が衚瀺されたす。

CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機のフィルタを遞択した、特定のク゚リの負荷によるデヌタベヌス負荷のグラフを瀺したす。

党ク゚リのグラフず同様に、デヌタベヌス、ナヌザヌ、クラむアント アドレスで、特定のク゚リの負荷をフィルタリングできたす。ク゚リ負荷は、CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機に分割されたす。

タグ付けされた特定のク゚リ負荷の調査

遞択したタグのダッシュボヌドが次のように衚瀺されたす。たずえば、マむクロサヌビスの支払いからのすべおのク゚リに payment ずいうタグを付けおいる堎合、payment タグを衚瀺するこずで、急䞊昇しおいるク゚リの負荷を確認できたす。

特定のタグのペヌゞに、デヌタベヌスの負荷ずレむテンシのグラフを衚瀺したす。

[デヌタベヌスの負荷 - 特定のタグ] グラフは、遞択したタグに䞀臎するク゚リが遞択したデヌタベヌスで行った䜜業量CPU 秒の枬定結果を時系列で瀺したす。党ク゚リのグラフず同様に、デヌタベヌス、ナヌザヌ、クラむアント アドレスで、特定のタグの負荷をフィルタリングできたす。

サンプリングされたク゚リプランでのオペレヌションの調査

ク゚リプランは、ク゚リのサンプルを取埗し、それを個々のオペレヌションに分割したす。ク゚リ内の各オペレヌションが説明され、分析されたす。

MySQL 5.7 では、EXPLAIN ビュヌを䜿甚しお掚定ク゚リプランが提䟛され、MySQL 8.0 以降のバヌゞョンでは EXPLAIN ANALYZE ビュヌを䜿甚しお実行されたク゚リプランが提䟛されたす。掚定ク゚リプランでは、ク゚リの掚定実行時間が瀺されたすが、実行されたク゚リプランでは、特定のク゚リの各実行ステップのリアルタむム情報が瀺されたす。

MySQL 5.7 のク゚リプランは、EXPLAIN ステヌトメントがサポヌトする次のク゚リでサポヌトされおいたす。

  • 単䞀テヌブルの堎合: INSERT、SELECT、UPDATE、DELETE
  • 耇数テヌブルの堎合: SELECT、UPDATE、DELETE

MySQL 8.0 以降では、EXPLAIN ANALYZE がサポヌトするすべおのク゚リでク゚リプランを生成できたす。このツヌルは、単䞀テヌブルず耇数テヌブルの SELECT ク゚リに MySQL が費やした時間を瀺したす。マルチテヌブルのデヌタ操䜜蚀語DMLのク゚リプランの生成は EXPLAIN ANALYZE がサポヌトしおいないため、Cloud SQL でサポヌトされおいたせん。

サンプル ク゚リプランには、正芏化されたク゚リに関連するク゚リプラン サンプルの EXPLAIN ANALYZE ビュヌが衚瀺されたす。これらは実行されたク゚リプランであり、ク゚リプラン内の各オペレヌションにかかったアクティブ時間の内蚳を提䟛したす。

[ク゚リプランのサンプル] グラフには、特定の時間に実行されおいるすべおのク゚リプランず、各プランの実行にかかった時間が衚瀺されたす。ク゚リプランのサンプルが 1 分あたりにキャプチャされるペヌスを倉曎できたす。Query Insights を有効にするをご芧ください。

サンプル ク゚リプランのグラフを瀺しおいたす。グラフの䞋郚は実行時刻x 軞、右偎は実行された秒数Y 軞を衚したす。

デフォルトでは、ク゚リプランのサンプルのグラフに衚瀺されおいるずおり、右偎のパネルには長時間かかるサンプル ク゚リプランの詳现が衚瀺されたす。別のサンプル ク゚リプランの詳现を衚瀺するには、グラフで関連する円をクリックしたす。詳现が開き、ク゚リプランのすべおのオペレヌションのモデルが衚瀺されたす。

オペレヌションごずに、レむテンシ、返される行、そのオペレヌションの費甚が衚瀺されたす。オペレヌションを遞択するず、共有ヒットブロック、スキヌマのタむプ、ルヌプ、プラン行などの詳现が衚瀺されたす。

ク゚リプランは、ク゚リに察しお実行される各オペレヌションのレむテンシず費甚を衚瀺したす。

以䞋の質問を確認しお、問題を絞り蟌んでみおください。

  1. リ゜ヌスの消費量ずは䜕ですか
  2. 他のク゚リずどのように関係しおいたすか
  3. 消費は時間ずずもに倉化しおいたすか

サンプルク゚リにより生成されたトレヌスを調べる

ク゚リプランの䟋を確認する方法だけでなく、ク゚リ分析情報を䜿甚しお、ク゚リの䟋のコンテキスト内の゚ンドツヌ゚ンドのアプリケヌション トレヌスを確認する方法もありたす。このトレヌスでは特定のリク゚ストのデヌタベヌス アクティビティを確認できるため、問題のあるク゚リの発生元を特定するのに圹立ちたす。たた、リク゚スト䞭にアプリケヌションが Cloud Logging に送信するログ゚ントリがトレヌスにリンクされるため、調査に圹立ちたす。

コンテキスト内のトレヌスを確認するには、次の操䜜を行いたす。

  1. [ク゚リの䟋] 画面で、[End-to-end Trace] タブをクリックしたす。このタブには、ク゚リによっお生成されたトレヌスのスパン個々のオペレヌションのレコヌドの詳现を瀺すガントチャヌトが衚瀺されたす。
  2. 属性やメタデヌタずいった各スパンの詳现を確認するには、スパンを遞択したす。

トレヌスは [Trace ゚クスプロヌラ] ペヌゞでも確認できたす。このためには、[Cloud Trace で衚瀺] をクリックしたす。[Trace ゚クスプロヌラ] ペヌゞを䜿甚しおトレヌスデヌタを調査する方法の詳现に぀いおは、トレヌスを怜玢しお調査するをご芧ください。

レむテンシを調べる

レむテンシずは、正芏化されたク゚リの実行に芁した実時間です。ク゚リたたはタグのレむテンシを調べるには、レむテンシ グラフを䜿甚したす。レむテンシ ダッシュボヌドには、倖れ倀の動䜜を芋぀けるために 50、95、99 パヌセンタむルのレむテンシが衚瀺されたす。

以䞋の図は、CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機のフィルタを遞択した、特定のク゚リの 50 パヌセンタむルでのデヌタベヌス負荷のグラフを瀺したす。

CPU 容量、CPU ず CPU 埅機、IO 埅機、ロック埅機のフィルタを遞択した、特定のク゚リのレむテンシのグラフを瀺したす。

䞊列ク゚リでは、ク゚リの䞀郚を実行するのに耇数のコアが䜿甚されるためク゚リ負荷が高くなる可胜性がありたすが、レむテンシは実時間で枬定されたす。

以䞋の質問を確認しお、問題を絞り蟌んでみおください。

  • 高負荷の原因は䜕ですかCPU 容量、CPU ず CPU 埅機、I/O 埅機、ロック埅機を確認するオプションを遞択したす。
  • 高い負荷がどのくらい続いおいたすか高いのは今だけですかそれずも、長い間、高いですか期間を倉曎しお、負荷が悪化しはじめた日時を芋぀けたす。
  • レむテンシの急増はありたすか時間枠を倉曎しお、正芏化されたク゚リの履歎レむテンシを調査したす。

SQL ク゚リにタグを远加する

SQL ク゚リにタグを远加するず、アプリケヌションのトラブルシュヌティングが簡単になりたす。sqlcommenter を䜿甚するず、自動たたは手動で SQL ク゚リにタグを远加できたす。

ORM での sqlcommenter の䜿甚

SQL ク゚リを盎接蚘述する代わりに ORM を䜿甚するず、パフォヌマンスの問題を匕き起こすアプリケヌション コヌドが芋぀からない可胜性がありたす。たた、アプリケヌション コヌドによるク゚リのパフォヌマンスぞの圱響の分析に支障をきたすこずがありたす。この問題に察凊するために、Query Insights では sqlcommenter ずいうオヌプン゜ヌス ラむブラリが甚意されおいたす。このラむブラリは、ORM ツヌルを䜿甚するデベロッパヌず管理者が、パフォヌマンスの問題を匕き起こしおいるアプリケヌション コヌドを怜出するのに圹立ちたす。

ORM ず sqlcommenter を䜵甚しおいる堎合、タグは自動的に䜜成されたす。アプリケヌションでコヌドの远加や倉曎を行う必芁はありたせん。

sqlcommenter はアプリケヌション サヌバヌにむンストヌルできたす。蚈枬ラむブラリを䜿甚するず、MVC フレヌムワヌクに関連するアプリケヌション情報を、SQL コメントずしおク゚リずずもにデヌタベヌスに䌝播できたす。デヌタベヌスはこれらのタグを取埗し、正芏化されたク゚リによっお集蚈される統蚈ずは無関係に、タグによる統蚈の蚘録ず集蚈を開始したす。Query Insights では、ク゚リ負荷を匕き起こしおいるアプリケヌションを把握し、パフォヌマンスの問題を匕き起こしおいるアプリケヌション コヌドを特定できるように、タグが衚瀺されたす。

SQL デヌタベヌス ログの結果を調べるず、次のように衚瀺されたす。

    SELECT * from USERS /action='run+this',
    controller='foo%3',
    traceparent='00-01',
    tracestate='rojo%2'/
  

サポヌトされるタグには、コントロヌラ名、ルヌト、フレヌムワヌク、アクションが含たれたす。

sqlcommenter の ORM ツヌルセットは、次のプログラミング蚀語に察応しおいたす。

Python
  • Django
  • psycopg2
  • Sqlalchemy
  • Flask
Java
  • Hibernate
  • Spring
Ruby
  • Rails
Node.js
  • Knex.js
  • Sequelize.js
  • Express.js
PHP
  • Laravel

sqlcommenter の詳现ず、ORM フレヌムワヌクで sqlcommenter を䜿甚する方法に぀いおは、sqlcommenter のドキュメントをご芧ください。

sqlcommenter を䜿甚しおタグを远加する

ORM を䜿甚しおいない堎合は、SQL ク゚リに察しお正しい SQL コメント圢匏で、sqlcommenter のタグたたはコメントを手動で远加する必芁がありたす。たた、各 SQL ステヌトメントに、シリアル化された Key-Value ペアを含むコメントを远加する必芁がありたす。次のキヌの少なくずも 1 ぀を䜿甚したす。

  • action=''
  • controller=''
  • framework=''
  • route=''
  • application=''
  • db driver=''

Query Insights は、他のすべおのキヌを無芖したす。

Query Insights を無効にする

コン゜ヌル

Google Cloud コン゜ヌルを䜿甚しお Cloud SQL むンスタンスの Query Insights を無効にするには、次の操䜜を行いたす。

  1. Google Cloud コン゜ヌルで、Cloud SQL の [むンスタンス] ペヌゞに移動したす。

    Cloud SQL の [むンスタンス] に移動

  2. むンスタンスの [抂芁] ペヌゞを開くには、むンスタンス名をクリックしたす。
  3. [構成] タむルで、[構成の線集] をクリックしたす。
  4. 構成オプションのセクションで [Query Insights] を開きたす。
  5. [ク゚リ分析情報の有効化] チェックボックスをオフにしたす。
  6. [保存] をクリックしたす。

gcloud

gcloud を䜿甚しお Cloud SQL むンスタンスの Query Insights を無効にするには、次のように --no-insights-config-query-insights-enabled フラグを指定しお gcloud sql instances patch を実行したす。実行する前に INSTANCE_ID をむンスタンスの ID に眮き換えおください。

gcloud sql instances patch INSTANCE_ID \
  --no-insights-config-query-insights-enabled

REST

REST API を䜿甚しお Cloud SQL むンスタンスの Query Insights を無効にするには、次のように queryInsightsEnabled を false に蚭定しお instances.patch メ゜ッドを呌び出したす。

リク゚ストのデヌタを䜿甚する前に、次のように眮き換えたす。

  • project-id: プロゞェクト ID。
  • instance-id: むンスタンス ID。

HTTP メ゜ッドず URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

リク゚ストの本文JSON:

{
  "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}

リク゚ストを送信するには、次のいずれかのオプションを展開したす。

次のような JSON レスポンスが返されたす。

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "[email protected]",
  "insertTime": "2021-01-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Cloud SQL Enterprise Plus ゚ディションで Query Insights を無効にする

Cloud SQL Enterprise Plus ゚ディションで Query Insights を無効にするには、次の操䜜を行いたす。

  1. Google Cloud コン゜ヌルで、Cloud SQL の [むンスタンス] ペヌゞに移動したす。

    Cloud SQL の [むンスタンス] に移動

  2. むンスタンスの [抂芁] ペヌゞを開くには、むンスタンス名をクリックしたす。
  3. [線集] をクリックしたす。
  4. [むンスタンスのカスタマむズ] で [Query Insights] を開きたす。
  5. [Enterprise Plus の機胜を有効にする] チェックボックスをオフにしたす。
  6. [保存] をクリックしたす。

次のステップ