Query Performance Feedback (ベータ)
指定した SOQL クエリ、レポート、またはリストビューのパフォーマンスを実行することなく分析します。
要求で explain パラメータを使用すると、Salesforce がクエリ、レポート、またはリストビューをどのように処理し、どのように最適化するかを詳細に説明する応答を取得できます。
Query Performance Feedback リソースは、API バージョン 30.0 以降で使用できます。
構文
- URI
- /services/data/vXX.X/query?explain=query
- 形式
- JSON、XML
- HTTP のメソッド
- GET
- 認証
- Authorization: Bearer token
- パラメータ
-
パラメータ 説明 explain 分析する SOQL クエリ、レポート、リストビュー。クエリを分析するには、要求にクエリ全体を指定します。レポートやリストビューを分析する場合は、レポートまたはリストビューの ID を指定します。
SOQL クエリ文字列が無効な場合、MALFORMED_QUERY 応答が返されます。レポートまたはリストビューの ID が無効な場合、INVALID_ID 応答が返されます。
- レスポンスボディ
- レスポンスボディには、クエリ、レポート、またはリストビューの実行に使用できる 1 つ以上のプランが含まれます。プランは、最も最適なものから順に並び替えられます。各プランには次の情報が含まれます。
名前 データ型 説明 cardinality number インデックス項目に基づいてクエリから返されると予測されるレコード数 (存在する場合)。 fields string[] leadingOperationType が Index の場合、その値がクエリに使用されるインデックス項目となります。それ以外の場合、値は null です。 leadingOperationType string クエリを最適化するために使用できる主な操作種別。次のいずれかの値が有効です。 - Index — クエリオブジェクトに関するインデックスがクエリで使用されます。
- Other — Salesforce の内部的な最適化がクエリで使用されます。
- Sharing — ユーザの共有ルールに基づいたインデックスがクエリで使用されます。現在のユーザに表示されるレコードが制限される共有ルールの場合、そのルールでクエリを最適化することができます。
- TableScan — クエリオブジェクトのすべてのレコードがクエリでスキャンされ、インデックスは使用されません。
notes feedback note[] 1 つ以上のフィードバックメモの配列。各メモに含まれる内容は、次のとおりです。 - description — 最適化の一部に関する詳細な説明。この説明には、使用不可能な最適化についてと、その理由が含まれます。
- fields — 最適化に使用される 1 つ以上の項目の配列。
- tableEnumOrId — 最適化に使用される項目のテーブル名。
relativeCost number SOQL セレクティブクエリのしきい値と比較した、このクエリのコスト。1.0 を超える値は、クエリがセレクティブではないことを示します。セレクティブクエリについての詳細は、『Apex 開発者ガイド』の「非常に大きい SOQL クエリの処理」を参照してください。 sobjectCardinality number 組織内にあるクエリオブジェクトの全レコードの概数。 sobjectType string クエリオブジェクトの名前 (Merchandise__c など)。
SOQL クエリ実行のリソース
- explain パラメータの使用方法については、「クエリのパフォーマンスに関するフィードバックを取得する」を参照してください。
-
SOQL 全般についての詳細は、『SOQL および SOSL リファレンス』を参照してください。