Query Insights を使用してクエリのパフォーマンスを向上させる

このページでは、Query Insights ダッシュボードを使用してクエリのパフォーマンスの問題を検出、分析する方法について説明します。

はじめに

Query Insights では、Cloud SQL データベースに対するクエリ パフォーマンスの問題を検出、診断、防止できます。直感的なモニタリングをサポートし、検出するだけでなくパフォーマンスの問題の根本原因の特定に役立つ診断情報を提供します。

Query Insights では、次の手順を行い、Cloud SQL クエリのパフォーマンスを向上させることができます。

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

Cloud SQL Enterprise Plus エディションを使用している場合は、Query Insights の追加機能にアクセスして、高度なクエリ パフォーマンス診断を実行できます。Cloud SQL Enterprise Plus エディションの Query Insights では、Query Insights ダッシュボードの標準機能に加えて、次のことができます。

  • 最大 20 KB の長いクエリテキストをキャプチャする。
  • 実行されたすべてのクエリのクエリプランをキャプチャする。
  • 1 分あたり最大 200 件のクエリプランをサンプリングする。
  • 指標の保持期間を 30 日間に延長する。
  • インデックス アドバイザーからインデックスの推奨事項を取得する。
  • アクティブなクエリでセッションまたは長時間実行トランザクションを終了する。
  • AI を活用したトラブルシューティング(プレビュー版)にアクセスする。

次の表は、Cloud SQL Enterprise エディションの Query Insights と Cloud SQL Enterprise Plus エディションの Query Insights の機能要件と機能を比較したものです。

比較領域 Cloud SQL Enterprise エディションの Query Insights Cloud SQL Enterprise Plus エディションの Query Insights
サポートされているデータベース バージョン

次のインスタンスのすべてのバージョン

  • SQL Server Web
  • SQL Server Standard
  • SQL Server Enterprise

Query Insights は SQL Server Express エディション インスタンスではサポートされていません

SQL Server Enterprise バージョン 2019 または 2022
サポートされているマシンタイプ すべてのマシンタイプでサポート 共有コア マシンタイプを使用するインスタンスまたはリードレプリカ インスタンスではサポートされていません。
サポートされるリージョン Cloud SQL のリージョン ロケーション Cloud SQL Enterprise Plus エディションのリージョン ロケーション
指標の保持期間 7 日間 30 日間
クエリの長さの上限 4500 バイト 20 KB
クエリプランのサンプルの最大数 利用不可 200
インデックス アドバイザーの推奨事項 利用不可 利用可能
アクティブなクエリでセッションまたは長時間実行トランザクションを終了する 利用不可 利用可能
AI による��ラブルシューティングプレビュー版 利用不可 利用可能

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 に追加料金は発生しません。

ストレージ要件

Query Insights はインスタンスに指標データを保存するため、ストレージの自動増量の設定を有効にしておく必要があります。該当するストレージ料金が適用されます

始める前に

Query Insights を使用する前に、次の操作を行います。

  1. 必要なロールと権限を追加する
  2. Cloud Trace API を有効にする
  3. Cloud SQL Enterprise エディションまたは Cloud SQL Enterprise Plus エディションの Query Insights を使用している場合は、[ストレージの自動増量を有効にする] がインスタンスで有効になっていることを確認してください。

必要なロールと権限

Query Insights を使用するには、事前定義ロールを付与するか、カスタムロールを作成するか、必要な Identity and Access Management 権限を持つユーザー アカウントを指定する必要があります。

ロールの付与の詳細については、アクセスの管理をご覧ください。

Query Insights ダッシュボードで過去のクエリ実行データにアクセスするために必要な権限を取得するには、Cloud SQL インスタンスをホストするプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

これらの事前定義ロールには、Query Insights ダッシュボードで過去のクエリ実行データにアクセスするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Query Insights ダッシュボードで過去のクエリ実行データにアクセスするには、次の権限が必要です。

  • databaseinsights.aggregatedStats.query
  • databaseinsights.timeSeries.query

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

たとえば、データベース分析情報では、データベース分析情報閲覧者roles/databaseinsights.viewer)の事前定義ロールを付与するよう管理者に依頼できます。次に、Cloud SQL で、次のいずれかの事前定義ロールを付与するよう管理者に依頼します。

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 アシスタンスによる観察とトラブルシューティングをご覧ください。 利用不可 利用可能

    デフォルト: 無効
    クエリの長さをカスタマイズする クエリ文字列の長さの上限をカスタマイズするには、このチェックボックスをオンにします。分析クエリの場合はより長いほうが便利ですが、必要なメモリ量が増えます。指定された上限を超えるクエリ文字列は、表示時に切り捨てられます。

    クエリ長の上限を変更するには、インスタンスを再起動する必要があります。
    バイト単位の上限は 2564500 バイトに設定できます。

    デフォルト: 1024
    バイト単位の上限は 25620480 に指定できます。

    デフォルト: 10240 バイト(10 KB)
    最大サンプリング レートを設定する 最大サンプリング レートを設定するには、このチェックボックスをオンにします。サンプリング レートとは、インスタンス上のすべてのデータベースで 1 分間にキャプチャされる実行済みクエリプランのサンプル数です。サンプリング レートを上げると、通常は得られるデータポイントの数が増えますが、パフォーマンスのオーバーヘッドが増加する可能性があります。 この値を 020 の数値に変更します。

    デフォルト: 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-query-string-length

    デフォルトのクエリ長の上限を設定します。分析クエリの場合はより長いほうが便利ですが、必要なメモリ量が増えます。クエリ長を変更するには、インスタンスを再起動する必要があります。 Cloud SQL Enterprise エディションの場合、バイト単位の値を 2564500 に指定できます。デフォルトのクエリ長は 1024 バイトです。Cloud SQL Enterprise Plus エディションの場合、バイト単位の上限を 25620480 に指定できます。デフォルト値は 10240 バイト(10 KB)です。

  • --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 \
--query_plans_per_minute=QUERY_PLANS_PER_MINUTE \
--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,
       "queryStringLength" : 1024,
       "queryPlansPerMinute" : 20,
   }
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "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 エディションの場合、バイト単位の値を 2564500 に指定できます。デフォルトのクエリ長は 1024 バイトです。Cloud SQL Enterprise Plus エディションの場合、バイト単位の上限を 25620480 に指定できます。デフォルト値は 10240 バイト(10 KB)です。
  • record_client_address: クライアント IP アドレスを記録する場合は、値を true に設定します。デフォルトは false です。
  • query_plans_per_minute: Cloud SQL Enterprise エディションの場合、値を 020 に設定できます。デフォルトは 5 です。 Cloud SQL Enterprise Plus エディションの場合、最大値を 200 まで増やして、より多くのデータポイントを提供できます。

次に例を示します。

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 で利用できるようになると想定されています。

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 ダッシュボードにはインスタンスに関する次の情報が表示されます。

Query Insights ダッシュボードに、データベースのプルダウン メニューが表示されています。プルダウン メニューの右側には、期間を設定するフィルタがあります。

  • データベース: 特定のデータベースまたはすべてのデータベースのクエリ負荷をフィルタします。
  • 期間: 1 時間、6 時間、1 日、7 日、30 日、カスタム範囲など、時間範囲でクエリ負荷をフィルタします。
  • データベース負荷グラフ: フィルタされたデータに基づき、クエリ負荷のグラフを表示します。
  • クエリデータベース: 選択したクエリまたは選択したデータベースのクエリ負荷をフィルタします。データベース負荷のフィルタリングをご覧ください。

すべてのクエリのデータベース負荷を表示する

データベースのクエリ負荷は、選択したデータベースで実行されたクエリの作業量の経時��な測定結果(CPU 秒単位)です。実行中の各クエリは、CPU リソース、IO リソース、またはロックリソースを使用または待機しています。データベースのクエリ負荷は、実時間に対する、指定の時間枠内で完了したすべてのクエリで要した時間の比率です。

最上位の Query Insights ダッシュボードには、[実行時間別のデータベースの負荷] グラフが表示されます。ダッシュボードのプルダウン メニューでは、すべてのデータベースまたは特定のデータベースのグラフをフィルタできます。

選択したデータベースで実行されたすべてのクエリが表示されます。

グラフの色付きの線で、データベースごとの負荷を実行時間別に表示します。 グラフを確認し、フィルタ オプションを使用して以下の質問を検討してください。

  • クエリ負荷は高いですか?時間の経過にともなってグラフが増加または減少していますか?負荷が高くない場合は、クエリに問題はありません。
  • 高い負荷がどのくらい続いていますか?その値はいまだけ高くなっていますか。それとも、長い間、高くなっていますか?範囲セレクタを使用して、さまざまな期間を選択し、問題が発生した期間を探します。ズームインすると、クエリ負荷の急増が観測される時間枠が拡大表示されます。ズームアウトすると、最大 1 週間のタイムラインが表示されます。
  • どのデータベースで負荷が発生していますか?[データベース] プルダウン メニューからデータベースを選択して、負荷が最も高いデータベースを特定します。

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

データベースの負荷をクエリでフィルタできます。Cloud SQL Enterprise Plus エディションの Query Insights を使用している場合は、データベース負荷グラフをカスタマイズして、次のいずれかのディメンションを使用して表示データを分類できます。

  • すべてのクエリ

  • データベース

データベース負荷グラフをカスタマイズするには、[実行時間別のデータベース負荷] プルダウンからディメンションを選択します。

データベース負荷の主な要因を表示する

データベースの負荷������も���響を与えている項目を表示するには、[データベースの負荷別の上位項目] テーブルを使用します。[データベースの負荷別の上位項目] テーブルには、[実行時間別のデータベース負荷] グラフのプルダウンで選択した期間と項目の上位項目が表示されます。期間またはディメンションを変更すると、別のディメンションまたは期間の上位の主要因を確認できます。

[データ負荷別の上位項目] テーブルで、次のタブを選択できます。

タブ 説明
クエリ このテーブルには、合計実行時間が上位の正規化されたクエリが表示されます。クエリごとに、列に表示されるデータは次のように一覧表示されます。
  • 平均実行時間(ミリ秒): クエリの平均実行時間。
  • 合計実行時間(ミリ秒): 特定のクエリでかかった合計実行時間。
  • 返された平均行数: クエリで取得された行数の平均。
  • 呼び出された回数: アプリケーションによってクエリが呼び出された回数。
データベース このテーブルには、選択した期間中に実行されたすべてのクエリで負荷増加の要因となった上位のデータベースのリストが表示されます。
  • データベースでの平均時間(ミリ秒): 特定のデータベースでクエリが費やした平均時間。
  • データベースでの合計時間(ミリ秒): 特定のデータベースでクエリが費やした合計実行時間。

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

上位クエリのテーブルでは、クエリ負荷が最も大きいクエリの概要を確認できます。このテーブルには、Query Insights ダッシュボードで選択された期間とオプションに対応する、正規化されたすべてのクエリが表示されます。選択した期間内の合計実行時間でクエリが並べ替えられます。

テーブルを並べ替えるには、列見出しを選択します。

テーブルには以下のプロパティが表示されます。

  • クエリ: 正規化されたクエリ文字列。Query Insights では、デフォルトでクエリ文字列の 1,024 文字のみが表示されます。
  • データベース: クエリが実行されたデータベース。
  • 推奨事項: クエリのパフォーマンスを向上させるため提案された推奨事項(インデックスの作成など)。
  • 平均実行時間(ミリ秒): クエリの平均実行時間。
  • 合計実行時間(ミリ秒): クエリの実行にかかった合計時間。
  • 呼び出された回数: アプリケーションがクエリを呼び出した回数。
  • 返された平均行数: クエリに対して返された行数の平均。

Query Insights は、正規化されたクエリのみを保存し、表示します。

サンプリングされたクエリプランでのオペレーションを調査する

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

[クエリプランのサンプル] グラフには、特定の時間に実行されているすべてのクエリプランと、各プランの実行にかかった時間が表示されます。クエリプランのサンプルが 1 分あたりにキャプチャされるペースを変更できます。Query Insights を有効にするをご覧ください。

クエリプランと、エンドツーエンドのトレースの可視化が表示されます。

デフォルトでは、クエリプランのサンプルのグラフに表示されているとおり、右側のパネルには長時間かかるサンプル クエリプランの詳細が表示されます。別のサンプル クエリプランの詳細を表示するには、グラフで関連する円をクリックします。詳細が開き、クエリプランのすべてのオペレーションのモデルが表示されます。

オペレーションごとに、返された行数と、該当する場合はオペレーションの費用が表示されます。全画面表示または [エンドツーエンド] タブを使用して、各ノード(オペレーション)に関する推定の実行統計情報と、ルートノードに関連付けられたランタイム実行統計情報を表示します。

可視化�����ーを使用してクエリプランを表示します。

以下の質問を確認して、問題を絞り込んでみてください。

  1. リソースの消費量とは何ですか?
  2. 他のクエリとどのように関係していますか?
  3. 消費は時間とともに変化していますか?

クエリの詳細機能

クエリの詳細には、平均実行時間、呼び出された回数、返された行数の平均など、特定のクエリの詳細情報が表示されます。また、クエリのパフォーマンスを改善するための推奨事項(インデックスなど)も提供されます。

クエリの詳細では、次の指標も提供されます。

  • クエリプランのサンプル: これらのサンプルは、クエリのサンプルにあるさまざまなオペレーションの内訳を提供することで、クエリの解明と分析に役立ちます。

    クエリプランと、エンドツーエンドのトレースの可視化が表示されます。

  • クエリ実行数の推移: 指定された期間にクエリが完了した回数が表示されます。このグラフは、クエリが通常いつ実行されるかを把握し、クエリがインスタンスのパフォーマンスに与える影響を推定するのに役立ちます。

    指定された期間にクエリが実行された回数が表示されます。

  • 返された平均行数の推移: クエリによって返された平均行数の推移が表示されます。このデータは、通常よりも遅いクエリと、そのクエリによって返されるデータ量の増加との関連付けに役立ちます。

    クエリによって返された平均行数の推移が表示されます。

  • I/O 統計情報: クエリの入出力統計情報が表示されます。次のフィルタが含まれます。
    • 論理読み取りの平均
    • 物理読み取りの平均
    • 論理書き込みの平均

    I/O の指標を使用すると、通常よりも遅いクエリと、より集中的な I/O の使用状況または I/O パターンの変化と関連付けることができます。

    たとえば、論理読み取り回数が増加した場合は、クエリが通常よりも多くのデータを読み取り始めたことを示している可能性があります。物理読み取り回数が増加した場合は、Cloud SQL がバッファ キャッシュではなくディスクからより多くのデータを読み取り始めたことを示している可能性があります。たとえば、すべてのデータをキャッシュに保存するのに十分なメモリがなかった場合や、インスタンスが大量のデータを読み始めた場合です。論理書き込み回数が増加した場合は、クエリがデータディスクにより多くのデータを書き込み始めたことを示している可能性があります。

    これは、この指標がインスタンス I/O に対するクエリの影響を測定するのにどのように役立つかを示す一例です。

    クエリの入出力統計情報が表示されます。

  • メモリ統計情報: クエリのメモリ使用量の統計情報が表示されます。以下の統計情報が含まれます。
    • 理想的なメモリの平均
    • 予約メモリの平均
    • メモリ使用量の平均

    この指標は、クエリに関連するメモリ消費量の変化を検出するのに役立ちます。次に例を示します。

    • この指標を使用して、Cloud SQL がクエリの実行に必要なメモリ量を誤って予測し、クエリで使用する容量よりも多くのメモリを予約した可能性がある場合を検出します。
    • この指標を使用して、Cloud SQL が十分なメモリを割り当てられず、より少ないメモリが割り当てられた場合を検出します。この場合、Cloud SQL は tempdb データベースを使用し、速度はメモリを使用する場合よりも低下します。
    • この指標とクエリ実行数を使用して、クエリがインスタンスのメモリ消費量に与える影響を測定します。
    • メモリ使用量が大きい場合やメモリ負荷が高い場合は、この指標を使用します。

    クエリのメモリ使用量の統計情報が表示されます。

  • CPU と実行時間の統計情報: クエリの CPU 時間と実行時間の統計情報がまとめて表示されます。CPU 時間の指標を使用して、インスタンスでの CPU 使用率の上昇を調査できます。次に例を示します。
    • CPU 時間と実行回数の指標を組み合わせて使用すると、インスタンスの総 CPU 消費量に対するクエリの影響を測定できます。
    • CPU 時間、実行時間、並列処理の指標を組み合わせて、クエリがリソースを待機していた時間の割合を測定できます。
    • 実行時間の指標を使用すると、クエリの実行に通常よりも時間がかかったタイミングを検出できます。

    クエリの CPU 時間と実行時間の統計情報がまとめて表示されます。

  • 追加のクエリ統計情報: クエリに関連する追加の統計情報が表示されます。次のフィルタが含まれます。
    • 共通言語ランタイム(CLR)統計情報
    • 列ストア統計情報
    • メモリスピル
    • 並列処理の統計情報

    クエリに関連するその他の統計情報(共通言語ランタイム(CLR)統計情���、列ストア統計情報、メモリスピン、並列処理統計情報など)が表示されます。

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 を無効にするには、次のように queryInsightsEnabledfalse に設定して 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": "user@example.com",
  "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. [保存] をクリックします。

次のステップ