Docs Menu
Docs Home
/ /

Performance Advisor で低速クエリを監視・改善

M10 以上のクラスターと Flex クラスターでのみ利用可能

パフォーマンス アドバイザーは、MongoDB が遅いと判断したクエリを監視し、クエリ パフォーマンスを向上させるための新しいインデックスを提案します。遅いクエリのしきい値は、クラスター上の操作の平均時間に基づいて変化し、ワークロードに関連する推奨事項が提供されます。

推奨されるインデックスには、クエリシェイプでグループ化されたサンプル クエリが付属しています。これらのクエリは、インデックスに関する提案によりメリットを得るコレクションに対して実行されたものです。Performance Advisor が、Atlas クラスターのパフォーマンスに悪影響を及ぼすことはありません。

また、Namespace Insights を使用してコレクション レベルの クエリのレイテンシ を監視したり、Query Profiler を使用してクエリ パフォーマンスを監視したりすることもできます。

注意

クエリが遅い場合、一般的な理由は次のとおりです。

  • クエリは現在のインデックスではサポートされていません。

  • コレクション内の一部のドキュメントには、検索とインデックス作成にコストがかかる大きな配列フィールドがあります。

  • 1 つのクエリで、$lookup を使用して複数のコレクションから情報を検索します。

クエリが遅いコレクションを表示し、推奨されるインデックスを確認するには、プロジェクトに対する Project Read Only 以上のアクセス権が必要です。

Performance Advisor のサンプルクエリのフィールド値を表示するには、プロジェクトに対する Project Observability ViewerProject Data Access Read OnlyProject Data Access Read/Write、または Project Data Access Admin へのアクセス権が必要です。

Atlas が管理する低速操作しきい値を有効または無効にするには、プロジェクトに対する Project Owner アクセス権が必要です。Organization Owner アクセス権を持つユーザーは、自分自身を Project Owner としてプロジェクトに追加する必要があります。

デフォルトでは 、Atlas はクラスター全体の操作の実行時間に基づいて、低速クエリのしきい値を動的に調整します。ただし、この機能をオプトアウトして、代わりに 100 ミリ秒の固定の低速クエリしきい値を使用することもできます。固定の低速クエリしきい値を 100 ミリ秒未満に設定することはお勧めしません。

注意

MongoDB Search が有効になっている Atlas クラスターは、Atlas が管理する低速クエリ操作のしきい値をサポートしていません。

M0 クラスターと Flex クラスターの場合、Atlas はデフォルトで Atlas 管理の低速クエリ操作しきい値を無効にしており、有効にすることはできません。

Atlas が管理する低速操作しきい値を無効にし、100 ミリ秒の固定しきい値を使用するには、次の手順を実行します。

Atlas は、Atlas が管理する低速操作しきい値をデフォルトで有効にします。以前無効にした Atlas 管理の低速操作しきい値を再度有効にするには:

インデックスは読み取りパフォーマンスを向上させますが、書き込み中にインデックスを更新する必要があるため、インデックスの数が多いと書き込みパフォーマンスに悪影響を与える可能性があります。コレクションにすでに複数のインデックスがある場合は、新しいインデックスを作成するかどうかを決定する際に、読み取りと書き込みのパフォーマンスのトレードオフを考慮してください。このようなコレクションのクエリを変更して既存のインデックスを活用できるかどうか、また、クエリが新しいインデックスのコストに見合うほど頻繁に発生するかどうかを調べます。

MongoDB MCP サーバーを使用して Performance Advisor にアクセスできます。このツールを使用すると、Clude、Cursor、 Github Copirot などのAIクライアントから Atlas クラスターを自然言語で操作できます。

MongoDB MCP Server を使用して Performance Advisor の推奨事項を取得する方法については、 「 MongoDB MCP サーバーで Performance Advisor にアクセスする 」を参照してください。

Performance AdvisorImpactは、インデックスを に従ってランク付けします。これは、関連する操作によって読み取られた無駄なバイトの合計に基づいています。 Performance Advisor がインデックスをランク付けする方法の詳細については、「 インデックスのランク付けを確認する 」を参照してください。

Performance Advisor が提案するインデックスを作成する方法については、「提案されたインデックスを作成する」を参照してください。

Performance Advisor が提案する各インデックスには、次のメトリクスが含まれます。これらのメトリクスは、インデックスによって改善されるクエリに特に適用されます。

メトリクス
説明

Execution Count

改善される 1 時間あたりに実行されるクエリの数。

Average Execution Time

影響を受けるクエリの現在の平均実行時間(ミリ秒単位)。

Average Query Targeting

影響を受けたクエリによって返されたドキュメント 1 件ごとの平均読み取りドキュメント数。 クエリ ターゲティング スコアが高いほど、クエリ効率は低くなります。 クエリ ターゲティングについて詳しくは、「クエリ ターゲティング 」を参照してください。

In Memory Sort

メモリ内でソートする必要があった、1 時間あたりの影響を受けたクエリの現在の数。

Average Docs Scanned

スキャンされたドキュメントの平均数。

Average Docs Returned

返されたドキュメントの平均数。

Average Object Size

平均オブジェクト サイズ。

Performance Advisor は、提案されたインデックスごとに、インデックスによって改善される最も頻繁に実行されるクエリシェイプを表示します。Performance Advisor は、クエリシェイプごとに次のメトリクスを表示します。

メトリクス
説明

Execution Count

クエリシェイプに一致する、1 時間あたりに実行されるクエリの数。

Average Execution Time

クエリシェイプにマッチするクエリの平均実行時間(ミリ秒)。

Average Query Targeting

一致するクエリによって返されたドキュメント 1 件ごとの平均読み取りドキュメント数。 クエリ ターゲティング スコアが高いほど、クエリ効率は低くなります。 クエリ ターゲティングについて詳しくは、「クエリ ターゲティング 」を参照してください。

Average Docs Scanned

スキャンされたドキュメントの平均数。

Average Docs Returned

返されたドキュメントの平均数。

Performance Advisorには、クエリシェイプに一致する実行済みの各サンプル クエリと、そのクエリの特定のメトリクスも表示されます。

各インデックス提案には、インデックスの対応するクエリシェイプに対して返されたドキュメントごとに読み取られたドキュメントの数を示す Average Query Targeting スコアが含まれます。スコア 1 は、読み取られたすべてのドキュメントがクエリに一致し、クエリ結果とともに返されたため、非常に効率的なクエリシェイプを表します。提案されたすべてのインデックスは、クエリのパフォーマンスを向上させる機会を表します。

デフォルトでは、Performance Advisorは配置内のすべてのクラスターのインデックスを提案します。特定のコレクションからの推奨インデックスのみを表示するには、Performance Advisor の上部にある Collection ドロップダウンを使用します。

Performance Advisor の上部にある Time Range ドロップダウンを使用して、Performance Advisor がインデックスを提案する際に考慮する時間範囲を調整することもできます。

Performance Advisor は、ctime タイムスタンプ形式を使用するように構成された MongoDB データベースのインデックスを提案できません。回避策として、このようなデータベースのタイムスタンプ形式を iso8601-utc または iso8601-local に設定します。タイムスタンプ形式の詳細については、「mongod --timeStampFormat」を参照してください。

クラスターのアクティビティが急増し、極端に大量のログメッセージが生成された場合、Atlas は一定期間、新しいログの収集と保存を停止することがあります。

注意

ログ分析レート制限は、パフォーマンス アドバイザーUI、アクセス トラッキングUI 、およびMongoDB検索クエリ分析UIにのみ適用されます。 ダウンロード可能なログファイル は常に完全です。

パフォーマンス アドバイザーは、時系列コレクションのパフォーマンスに関する提案を提供しません。

パフォーマンス アドバイザーには、専用クラスターのインデックス提案のユーザーフィードバックボタンが含まれています。

Performance Advisor によって提案されたインデックスを、Performance Advisor 内で直接作成できます。インデックスを作成するときは、ターゲットコレクションへの読み取りと書き込みの比率を念頭に置きます。インデックスにはパフォーマンスコストが伴いますが、大規模なデータセットで頻繁にクエリを実行する場合はコストに見合うだけの価値があります。インデックス作成戦略について詳しくは、「インデックスの作成戦略」を参照してください。

  • プロジェクトでデータ エクスプローラーが無効になっている場合は、Performance Advisor を使用してインデックスを作成することはできません。Performance Advisor の推奨事項は引き続き表示できますが、それらのインデックスは mongosh. から作成する必要があります。

  • パフォーマンス アドバイザーでは一度に 1 つのインデックスのみ作成できます。同時にさらに作成したい場合は、Atlas UIドライバー、または シェル を使用できます。

  • Atlas は常にクラスター全体のインデックスを作成します。Performance Advisor の表示中にシャーディングされたクラスター内の単一のシャードのインデックスを作成すると、Atlas はシャーディングされたクラスター全体に対してそのインデックスを作成します。

推奨インデックスを作成するには、次の手順に従います。

1

Performance Advisor は Create Index ダイアログ ボックスを開き、選択したインデックスに基づいて Fields を事前入力します。

2
{ <option1>: <value1>, ... }

次のオプション ドキュメントでは、インデックスの unique オプションと name を指定します。

{ unique: true, name: "myUniqueIndex" }
3

collat ion を使用して、大文字と小文字やアクセント記号のルールなど、文字列比較の言語固有のルールを指定します。 照合ドキュメントには、ICU ロケール コードを示すlocaleフィールドが含まれており、照合動作を定義する他のフィールドが含まれている場合があります。

次の照合オプション ドキュメントでは、フランス語の照合にロケール値 fr を指定しています。

{ "locale": "fr" }

MongoDB 照合がサポートするロケールのリストを確認するには、言語とロケールのリストを参照してください。各ロケールでデフォルトで有効になっている照合オプションなどについて詳しくは、MongoDB マニュアルの 照合 を参照してください。

4

重要

ローリング方式でインデックスをビルドすると、クラスターの回復力が低下し、インデックス構築時間が増えます。通常のインデックスビルドがニーズを満たせない場合にのみ、ローリングインデックスビルドを使用することをお勧めします。

ローリングインデックスを 使用し続ける場合は、成功するために一定の条件を満たしている必要があることを考慮してください。インデックス構築に成功するようにするには、再起動ループをトリガーすることが多い次の設計パターンを避けてください。

注意

Atlas UI は、M0 無料クラスターと Flex クラスターのローリング ビルドによるインデックスのビルドをサポートしていません。

インデックス構築によるパフォーマンスの低下を許容できないワークロードの場合は、ローリング方式でインデックスを構築することを検討してください。

クラスターの可用性を維持するには、次の手順に従います。

  • Atlas は、セカンダリから始めて、一度に 1 つのノードをクラスターから削除します。

  • 一度に複数のノードがダウンする可能性がありますが、Atlas は常に大多数のノードをオンラインに保ちます。

Atlas は、すべてのノードで成功しないローリング インデックス構築を自動的にキャンセルします。ローリング インデックス構築が一部のノードで完了したが、他のノードで失敗した場合、Atlas は構築をキャンセルし、正常に構築されたすべてのノードからインデックスを削除します。

ローリング インデックス構築がキャンセルされた場合、Atlas は アクティビティフィード イベント を生成し、次の情報を含む通知メールをプロジェクト所有者に送信します。

  • ローリング インデックス構築に失敗したクラスターの名前

  • ローリング インデックス構築に失敗した名前空間

  • クラスターと名前空間を含むプロジェクト

  • プロジェクトを含む組織

  • アクティビティ フィード イベントへのリンク

インデックスの再構築について詳しくは、「レプリカセットでインデックスを構築する」を参照してください。

注意

Unique インデックス オプションは、ローリング方式でのインデックスの構築と互換性がありません。Options ペインで unique を指定すると、Atlas はエラー メッセージを表示して構成を拒否します。

5
6

重要

インデックス構築が完了すると、Atlas は アクティビティフィード イベント を生成し、次の情報を含む通知メールをプロジェクト所有者に送信します。

  • インデックス構築の完了日

  • インデックス構築が完了したクラスターの名前

  • インデックス構築が完了した名前空間

  • クラスターと名前空間を含むプロジェクト

  • プロジェクトを含む組織

  • アクティビティ フィード イベントへのリンク

戻る

低速クエリの分析

項目一覧