Alibaba Cloud チームは、インスタンスの使用中に発生するパフォーマンスの問題を分析し、パフォーマンスの問題の 90% 以上がインデックスの不足によって引き起こされていることを特定しました。パフォーマンスの問題には、高い CPU 使用率、高い IOPS 使用率、低いクエリパフォーマンス、リクエストのタイムアウトなどがあります。Database Autonomy Service (DAS) は、不足しているインデックスのクエリ機能を提供します。この機能は、ApsaraDB RDS for SQL Server インスタンスで不足しているインデックスを見つけるのに役立ち、不足しているインデックスを作成するために必要なスクリプトをエクスポートできます。その後、オフピーク時にスクリプトを実行して、前述のパフォーマンスの問題を解決できます。
前提条件
RDS インスタンスで、クラウドディスクを使用して SQL Server 2008 R2 を実行していないこと。
RDS インスタンスが、次のリージョンのいずれかにあること: 中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、中国 (香港)、シンガポール、UAE (ドバイ)。
「不足しているインデックス」タブの概要
不足しているインデックスの概要
このセクションでは、RDS インスタンスの不足しているインデックスの概要を示します。次の表に、「不足しているインデックスの概要」セクションのパラメーターを示します。
パラメーター | 説明 |
不足しているインデックス | RDS インスタンスで作成されたすべてのテーブルの不足しているインデックスの総数と、インスタンスのパフォーマンスを 80% 以上向上させることができるインデックスの数。 |
過去 1 日間にアクセスされた不足しているインデックス | 過去 1 日間に RDS インスタンスで作成されたすべてのテーブルのアクセスされた不足しているインデックスの数と、すべての不足しているインデックスにおけるアクセスされた不足しているインデックスの割合。 |
過去 7 日間にアクセスされた不足しているインデックス | 過去 7 日間に RDS インスタンスで作成されたすべてのテーブルのアクセスされた不足しているインデックスの数と、すべての不足しているインデックスにおけるアクセスされた不足しているインデックスの割合。 |
過去 30 日間にアクセスされた不足しているインデックス | 過去 30 日間に RDS インスタンスで作成されたすべてのテーブルのアクセスされた不足しているインデックスの数と、すべての不足しているインデックスにおけるアクセスされた不足しているインデックスの割合。 |
データの更新日時 | RDS インスタンスの不足しているインデックスの統計が生成された日時。 |
再収集 | [インデックス使用状況統計の更新] に長い時間がかかる場合、またはリアルタイムのインデックス使用状況統計が必要な場合は、[再収集] をクリックします。表示されるメッセージで、[OK] をクリックします。システムは RDS インスタンスのインデックス使用状況統計を非同期的に再収集します。数分後、ページをリフレッシュして、更新されたインデックス使用状況統計を表示できます。 |
PDF ファイルとして保存 | パフォーマンス統計をファイルとしてコンピューターに保存する場合は、[PDF ファイルとして保存] をクリックして、システムが PDF ファイルを生成するまで待ちます。 |
不足しているインデックス情報のグラフ
このセクションには、RDS インスタンスの不足しているインデックスの傾向、および不足しているインデックスによって引き起こされるパフォーマンスの向上とリソース消費の削減の傾向がグラフで表示されます。次の表に、「不足しているインデックス情報のグラフ」セクションのパラメーターを示します。
パラメーター | 説明 |
不足しているインデックスの変更 | 過去 24 時間における RDS インスタンスの不足しているインデックスの傾向。 |
最後のユーザーシーク時間 | 過去 1 日間、過去 7 日間、過去 14 日間、および過去 30 日間に RDS インスタンスでユーザーが検索した不足しているインデックスの数。 |
クエリコストの平均削減量 | RDS インスタンスで不足しているインデックスによって引き起こされる平均クエリ CPU オーバーヘッド。 |
クエリパフォーマンスの向上 | RDS インスタンスの不足しているインデックスによるパフォーマンスの向上。 |
不足しているインデックスの詳細
このセクションには、RDS インスタンスの不足しているすべてのインデックスに関する詳細が表形式で表示されます。次の表に、「不足しているインデックスの詳細」セクションのパラメーターを示します。
パラメーター | 説明 |
テーブル名 | インデックスが作成されるテーブルの名前。このパラメーターの値は、データベース名、スキーマ名、およびオブジェクト名で構成されます。 |
合計ストレージ | テーブルに割り当てられているストレージ。 |
レコード | テーブルでインデックスが不足しているレコードの数。 |
合計ページ数 | テーブルのページ数。 |
インデックス | テーブルに作成されているインデックスの数。 |
等価演算に含まれるインデックス列 | テーブルの列にインデックスがないため、等価クエリに使用される列。 |
非等価演算に含まれるインデックス列 | テーブルの列にインデックスがないため、非等価クエリに使用される列。 |
インデックスキー列 | テーブルでインデックスが不足している列。 |
ユーザーによって実行されたシーク | テーブルの不足しているインデックスに対して実行された検索操作の数。 |
ユーザーによって実行されたスキャン | テーブルで実行されたスキャン操作の数。 |
平均コスト削減 | 不足しているインデックスが作成された後、テーブルの推定平均 CPU オーバーヘッド削減量。CPU オーバーヘッドの削減量はパーセンテージで計算されます。 |
パフォーマンスの向上 (%) | 不足しているインデックスが作成された後、テーブルの平均クエリパフォーマンスの向上。クエリパフォーマンスの向上はパーセンテージで計算されます。 |
最後のユーザーシーク時間 | ユーザーがテーブルの不足しているインデックスを最後に検索した日時。 |
インデックス作成ステートメント | テーブルに不足しているインデックスを作成するために使用できるステートメント。 |
スクリプトのエクスポート | 不足しているインデックスを作成するために使用されるステートメントをエクスポートするために使用されるボタン。RDS インスタンスでステートメントを実行して不足しているインデックスを作成する適切な時間を選択できます。 |
ファイルのエクスポート | 不足しているインデックスに関する詳細を Excel、CSV、または TXT ファイルにエクスポートするために使用されるボタン。 |
手順
ApsaraDB RDS コンソールにログオンし、インスタンス ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[不足しているインデックス] タブをクリックし、[不足しているインデックスの詳細] セクションでフィルター条件を選択して、[スクリプトのエクスポート] をクリックします。
次の手順
オフピーク時に、エクスポートされたスクリプトファイルに記載されている SQL ステートメントを実行して、RDS インスタンスのテーブルにインデックスを作成します。