Azure Database for PostgreSQL - フレキシブル サーバー (プレビュー) でインデックス チューニングによって生成されるインデックスのレコメンデーションを使用する
インデックス チューニングでは、azure_sys
データベース内の intelligentperformance
スキーマにある一連のテーブルで作成されるレコメンデーションが保持されます。
現時点では、この情報は、この目的のために Azure portal ページ ビルドを使用するか、クエリを実行して azure_sys
データベースの intelligent performance
内で使用可能な 2 つのビューからデータを取得することで読み取ることができます。
Azure portal を使用してインデックスのレコメンデーションを使用する
Azure portal にサインインし、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
メニューの [インテリジェント パフォーマンス] セクションで、[インデックスの チューニング (プレビュー)] を選択 します。
使用可能なレコメンデーションがある場合は、[インデックスのレコメンデーション表示] の要約を選択して、完全な一覧にアクセスします。
この一覧には、使用可能なすべてのレコメンデーションと、それぞれの詳細が表示されます。 既定では、一覧は [最終レコメンデーション] (降順) で並べ替えられます。一番上に最新のレコメンデーションが表示されます。 ただし、他の列で並べ替え、フィルター ボックスを使用することで、表示される項目の一覧を、データベース名、スキーマ名、またはテーブル名に指定されたテキストが含まれている項目に絞り込むことができます。
特定のレコメンデーションに関する詳細情報を表示するには、そのレコメンデーションの名前を選択すると、画面の右側に [インデックスのレコメンデーションの詳細] ウィンドウが開き、そのレコメンデーションに関して使用可能なすべての詳細が表示されます。
azure_sys データベースで使用可能なビューを使用してインデックスのレコメンデーションを使用する
- インスタンスに接続するためのアクセス許可を持つ任意のロールを使用して、サーバーで使用可能な
azure_sys
データベースに接続します。public
ロールのメンバーは、これらのビューから読み取ることができます。 - CREATE INDEX と DROP INDEX のレコメンデーションのインデックス チューニングによって生成されたレコメンデーションを取得するには、
createindexrecommendations
およびdropindexrecommendations
ビューに対してクエリを実行します。
表示
azure_sys
データベース内のビューは、インデックスのチューニングによって生成されたインデックスのレコメンデーションにアクセスして取得する便利な方法を提供します。 具体的には、createindexrecommendations
および dropindexrecommendations
ビューにはそれぞれ、CREATE INDEX と DROP INDEX のレコメンデーションに関する詳細情報が含まれています。 これらのビューでは、セッション ID、データベース名、アドバイザーの種類、チューニング セッションの開始時刻と停止時間、レコメンデーション ID、レコメンデーションの種類、レコメンデーションの理由、その他の関連する詳細などのデータが公開されます。 これらのビューに対してクエリを実行することで、ユーザーはインデックスのチューニングによって生成されたインデックスのレコメンデーションに簡単にアクセスして分析できます。
intelligentperformace.createindexrecommendations
createindexrecommendations
ビューでは、基になるテーブルでデータを引き続き使用できるチューニング セッションで生成されたすべての CREATE INDEX レコメンデーションのすべての詳細が公開されます。
列名 | データ型 (data type) | 説明 |
---|---|---|
session_id | char(36) | グローバル一意識別子が、すべての新しいチューニング セッションに割り当てられます。 チューニング セッションで CREATE INDEX と DROP INDEX のレコメンデーションが生成される場合、このビューと dropindexrecommendations ビューには同じ値の行があります。 |
database_name | varchar(64) | レコメンデーションが生成されたコンテキストのデータベースの名前。 |
advisor_type | varchar(64) | 定数値 createindex 。 |
start_time | timestamp | このレコメンデーションを生成したチューニング セッションが開始されたタイムスタンプ。 |
stop_time | timestamp | このレコメンデーションを生成したチューニング セッションが開始されたタイムスタンプ。 セッションが進行中の場合、または何らかの障害が原因で中止された場合は NULL。 |
session_context | json | 分析されたワークロードの詳細を記述するコンテキスト。 具体的には、この特定のセッションのターゲットであった時間枠、キャッチされた例外の一覧 (存在する場合)、分析されたワークロード内のクエリの合計数、および調査されたクエリ識別子の一覧を定義します。 |
州 | pg_recommendation_state_type | セッションが失敗したか、正常に完了したか、進行中であるかを表します。 Error 、Success または InProgress |
recommendation_id | 最小 | ゼロから始まる単調に増加する整数が、チューニング セッションのコンテキスト内で生成される各レコメンデーションに割り当てられます。 新しいチューニング セッションごとに 0 にリセットします。 |
recommendation_type | varchar(64) | 定数値 CreateIndex 。 |
reason | varchar(1024) | このレコメンデーションが生成された理由を正当である根拠。 通常、1 つ以上の文字列が結合され、"列 {columnName} はクエリ {queryId} の {Join On / Equal Predicate / Non-Equal Predicate / Group By / Order By} 句にあります" といった形式になります。 |
recommendation_context | json | レコメンデーションの影響を受けるクエリのクエリ識別子の一覧、推奨されるインデックスの種類、インデックスが推奨されるスキーマの名前およびテーブルの名前、インデックス列、インデックス名、推奨インデックスの推定サイズ (バイト単位) が含まれます。 |
intelligentperformace.dropindexrecommendations
dropindexrecommendations
では、基になるテーブルでデータを引き続き使用できるチューニング セッションで生成されたすべての DROP INDEX レコメンデーションのすべての詳細が公開されます。
列名 | データ型 (data type) | 説明 |
---|---|---|
session_id | uuid | グローバル一意識別子が、すべての新しいチューニング セッションに割り当てられます。 チューニング セッションで CREATE INDEX と DROP INDEX のレコメンデーションが生成される場合、このビューには行があり、同じ値を持つインデックスのレコメンデーション ビューが作成されます。 |
database_name | text | レコメンデーションが生成されたコンテキスト内のデータベースの名前。 |
start_time | timestamp | このレコメンデーションを生成したチューニング セッションが開始されたタイムスタンプ。 |
end_time | timestamp | このレコメンデーションを生成したチューニング セッションが開始されたタイムスタンプ。 セッションが進行中の場合、または何らかの障害が原因で中止された場合は NULL。 |
メッセージ | text | 分析されたワークロードの詳細を記述するコンテキスト。 具体的には、この特定のセッションのターゲットであった時間枠、キャッチされた例外の一覧 (存在する場合)、分析されたワークロード内のクエリの合計数、および調査されたクエリ識別子の一覧を定義します。 |
recommendation_id | int | 10000 から始まる単調に増加する整数が、すべてのチューニング セッションのコンテキスト内で生成される各レコメンデーションに割り当てられます。 新しいチューニング セッションごとに 0 にリセットされません。 |
schema_name | text | インデックスが存在するスキーマの名前。 |
table_name | text | インデックスが作成されるテーブルの名前 |
index_type | text | pg_am によって公開されるアクセス機構の名前で説明されているインデックスの型。 |
index_name | text | インデックス名。 |
column_list | text | インデックスのキーを構成する列の名前。 |
command | text | 推奨されるアクションを実装するための DROP INDEX ステートメント。 |
特典 | double precision | 推定されるベネフィット。 |
index_size | double precision | インデックスの推定サイズ。 |
reason | text | このレコメンデーションが生成された理由を正当である根拠。 通常、重複するインデックスの場合、"Duplicate of "{indexName}" のようなメッセージが報告されます。 同等のインデックス "{IndexName}" {は主キーですが、 / は一意のインデックスですが、 / は制約ですが、 / は有効なインデックスですが、/ はレプリカ ID として選択されていますが、 / はテーブルのクラスター化に使用されましたが、 / 推定サイズが小さくなりますが、 / より多くのインデックス スキャンが行われました / より多くフェッチが発生しました / より多く読み込みが発生しました} (比較対象: {duplicateIndexName})。 必要に応じて、インデックスが重複として識別されるだけでなく、index_tuning.unused_min_period 日を超えて使用されなかったと判断された場合は、上記のいずれかに次のメッセージが追加されます。"また、インデックスは過去 {days} 日に使用されていません。 |
未使用のインデックスの場合、メッセージは "インデックスは過去 {days} 日間使用されていません" となります。
インデックスの推奨事項を適用する
インデックスの推奨事項には、推奨事項を実装するために実行できる SQL ステートメントが含まれています。
次のセクションでは、特定の推奨事項に対してこのステートメントを取得する方法を示します。
ステートメントを作成したら、任意の PostgreSQL クライアントを使用してサーバーに接続し、レコメンデーションを適用できます。
Azure portal の [インデックスのチューニング (プレビュー)] ページを使用して SQL ステートメントを取得する
Azure portal にサインインし、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
メニューの [インテリジェント パフォーマンス] セクションで、[インデックスの チューニング (プレビュー)] を選択 します。
インデックスのチューニングによってレコメンデーションが既に生成されていると仮定して、[インデックスのレコメンデーションの表示] の要約を選択して、使用可能なレコメンデーションの一覧にアクセスします。
レコメンデーションの一覧から、次のいずれかを行います。
関連するコンテンツ
- Azure Database for PostgreSQL でのインデックス チューニング - Flexible Server (プレビュー)
- Azure Database for PostgreSQL でインデックス チューニングを構成する - Flexible Server (プレビュー)
- クエリ ストアによるパフォーマンスの監視
- クエリ ストアの使用シナリオ - Azure Database for PostgreSQL - Flexible Server
- クエリ ストアのベスト プラクティス - Azure Database for PostgreSQL Flexible Server
- Azure Database for PostgreSQL 用の Query Performance Insight - フレキシブル サーバー