クエリ調整
特定のクエリが Microsoft Dataverse のデータを格納するデータベースに不均衡な負荷をかけた場合、データベースのリソースが不足し、すべてのデータ操作のパフォーマンスに悪影響を及ぼす可能性があります。 これが起こると、Dataverse はその特定のクエリの調整を開始し、他のすべてのシナリオが正常に実行できるようになります。
クエリ調整 がサービス保護の API 制限 と異なる点は、クエリ調整はパフォーマンス低下の原因となる特定のクエリを対象とし、それ以外のトラフィックには影響を与えないという点です。 調整されたクエリが非インタラクティブなアプリケーションから発信されている場合、調整はエンドユーザーには気づかれない可能性があります。 クエリがインタラクティブなアプリケーションから発信される場合、その特定のシナリオを実行するユーザーに影響します。
クエリ調整の動作
調整には、次の 2 つの方法があります。
クエリを実行する前に遅延を導入し、クエリを利用するシナリオを遅くする
クエリを実行しようとすると、何割かの確率で専用のエラーが発生します。
| エラー コード | 16 進コード | メッセージ |
|---|---|---|
| -2147187388 | 0x80048544 | このクエリはクエリ調整と競合するため実行できません。 クエリ調整 を参照してください |
一般的な要因
クエリの調整が必要な状況のほとんどは、次の 2 つの大きなカテゴリのいずれかに分類されます。
グリッドで使用される保存済クエリや、プラグインで実行されるクエリなど、一般的なインタラクティブ シナリオにおけるクエリは、非効率的で、実行のたびに多くのデータベース リソースを必要とする
大量のデータを Dataverse に出し入れするデータ統合などの自動化された操作では、クエリが非常に高いレートで実行されるため、1 回の実行量は少なくても、全体では多くのデータベース リソースが消費される
クエリ調整を回避する方法
クエリ調整は、クエリや実行されるシナリオによって異なりますが、いくつかの共通のガイドラインがあります。
インタラクティブなアプリケーションで一般的に使用される、低速で低頻度のクエリについては、クエリ構造を変更して効率化する必要がある
- クエリのパフォーマンスを向上させるための一般的なガイドラインについては FetchXML 要求のパフォーマンスを改善する を参照
非インタラクティブ アプリケーションの場合、データベースの負荷を軽減する一般的な方法は次のとおりです。
ExecuteMultiple (または他のバッチ処理メカニズム) が使用されている場合、バッチ サイズを小さくすることができる
アプリケーションがコンカレンシーを使用する場合は、スレッド数を減らすことができる
バッチ処理もコンカレンシーも使用しない場合、要求間の遅延を導入して要求レートを下げることができる
フィードバック
フィードバックの送信と表示