インデックス アドバイザーを使用する

このページでは、Cloud SQL for SQL Server インデックス アドバイザーについて説明するとともに、インデックスに関する推奨事項を確認して適用する方法を説明します。

Cloud SQL for SQL Server には、データベースで定期的に処理されるクエリを追跡するフルマネージドのインデックス アドバイザーが用意されています。インデックス アドバイザーは、これらのクエリを定期的に分析して、クエリのパフォーマンスを改善できる新しいインデックスを推奨します。インデックス アドバイザーにより、システムとクエリのパフォーマンスの問題を検出し、修正できます。

インデックス アドバイザーの仕組み

インデックス アドバイザーは、次の処理を行うことでクエリ処理を改善します。

  • インデックスを作成する SQL コマンドを使用して、インデックスのセットを推奨します。
  • 推奨インデックスの評価に役立つデータ(推定ストレージ サイズ、インデックスがクエリに与える影響など)を提供します。
インデックス アドバイザーは、データベース名、スキーマ名、テーブル名、列名を含む CREATE INDEX コマンドを保存、表示します。追跡されるクエリはすべて正規化されたクエリであり、リテラルはすべて削除されます。

インデックスに関する推奨事項は、保存時に暗号化されます。

制限事項

Cloud SQL for SQL Server インデックス アドバイザーには、次の制限事項があります。

  • インデックス アドバイザーは CREATE INDEX の推奨事項のみを提供します。
  • インデックス アドバイザーは、次の構成のインスタンスをサポートしていません。
    • Cloud SQL Enterprise エディションのインスタンス
    • リードレプリカ インスタンス

始める前に

インデックス アドバイザーの推奨事項を取得するには、Cloud SQL Enterprise Plus エディションを使用し、Cloud SQL インスタンスで Cloud SQL Enterprise Plus エディションの Query Insights を有効にする必要があります。

必要なロールと権限

インデックス アドバイザーの推奨事項を取得するために必要な権限を取得するには、Cloud SQL インスタンスをホストするプロジェクトに対する Cloud SQL 閲覧者 roles/cloudsql.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、インデックス アドバイザーの推奨事項を取得するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

インデックス アドバイザーの推奨事項を取得するには、次の権限が必要です。

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

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

インデックス アドバイザーの推奨事項を有効にする

Cloud SQL Enterprise Plus エディションの Query Insights を有効にすると、インデックス アドバイザーの推奨事項が自動的に有効になります。

インデックス アドバイザーの推奨事項を無効にする

Cloud SQL Enterprise Plus エディションの Query Insights を無効にせずに、インデックス アドバイザーの推奨事項を無効にすることはできません。

Cloud SQL Enterprise Plus エディションのインデックス アドバイザーの推奨事項と Query Insights を無効にするには、Cloud SQL Enterprise Plus エディションで Query Insights を無効にするをご覧ください。

インデックス アドバイザーの推奨事項を表示する

Cloud SQL は、インデックス アドバイザーの分析を定期的に自動で実行します。インデックス アドバイザーの推奨事項を表示するには、Query Insights ダッシュボードを使用します。

Query Insights ダッシュボードで推奨事項を表示、フィルタリングする

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

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

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [Query Insights] をクリックします。
  4. [有効にする] をクリックします。インデックス アドバイザーの推奨事項は、[データベースの負荷別の上位項目] セクションの [クエリ] タブの [推奨事項] 列に表示されます。
  5. 省略可: CREATE INDEX の推奨事項を含むクエリのみを表示するには、[推奨事項: インデックスの作成] のフィルタを追加します。

クエリの推奨事項を表示する

特定のクエリのインデックス推奨を表示する手順は次のとおりです。

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

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

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [Query Insights] をクリックします。
  4. [上位のクエリとタグ] セクションで、[クエリ] をクリックします。
  5. クエリの推奨事項の詳細を取得するには、次のいずれかを行います。
    • クエリをクリックして、選択したクエリの推奨事項の詳細を確認します。これには以下の情報が含まれます。
      • パフォーマンスへの影響(高、中、低): 推奨されるすべてのインデックスが作成された後の推定クエリ速度。
      • 推奨事項: インデックスの推奨事項を作成します。
      • 影響を受けるテーブル: インデックスの作成時に影響を受けるテーブルの数。
      • 推定される必要な追加ストレージ サイズ: 推奨されるインデックスをすべて作成するために必要な推定ストレージ サイズ。
      • 影響を受けるクエリの数: インデックスの推奨事項の影響を受けるワークロードのクエリの合計数。インデックスは複数のクエリにメリットをもたらす場合があります。
    • 特定のクエリの [インデックスの作成] をクリックすると、クエリのパフォーマンスを改善するためのインデックスの作成に関する詳細な推奨事項を確認できます。

影響を受けるクエリを表示する

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

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

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [Query Insights] をクリックします。
  4. [データベースの負荷別の上位項目] テーブルで、[クエリ] をクリックします。
  5. 特定のクエリの [インデックスの作成] をクリックします。
  6. [影響を受けるクエリを表示] をクリックします。
  7. クエリをクリックして、影響を受けるクエリの詳細を確認します。

次のステップ