クエリのパフォーマンスに関するフィードバックを取得する
Salesforce でクエリ、レポート、またはリストビューがどのように実行されるかについてフィードバックを取得するには、explain パラメータを指定して Query リソースを使用します。Salesforce では、各クエリを分析して、クエリ結果を取得するための最適な手段が検索されます。クエリおよびクエリ条件に応じて、Salesforce ではインデックスまたは内部最適化が使用されます。クエリを実際に実行せずに Salesforce でクエリがどのように最適化されるかについての詳細を返すには、explain パラメータを使用します。応答に基づいて、クエリをセレクティブにするための条件を追加するなど、クエリのパフォーマンスを細かく調整するかどうかを決定できます。
応答には、最も最適なものから順に並び替えられた、1 つ以上のクエリ実行プランが含まれます。クエリ、レポート、またはリストビューの実行時には最も最適なプランが使用されます。
explain を使用するときに返される項目についての詳細は、「Query Options ヘッダー」の explain パラメータを参照してください。クエリをセレクティブにする方法についての詳細は、『Apex 開発者ガイド』の「非常に大きい SOQL クエリの処理」を参照してください。
例: クエリのパフォーマンスに関するフィードバック
次のパフォーマンスフィードバッククエリでは、Merchandise__c を使用します。
パフォーマンスフィードバッククエリのレスポンスボディは、次のようになります。
この応答は、このクエリに対して 2 つの可能な実行プランが Salesforce で検出されたことを示しています。最初のプランでは、このクエリのパフォーマンスを向上するために CreatedDate インデックス項目が使用されます。2 つ目のプランでは、インデックス���使用せずにすべてのレコードがスキャンされます。クエリが実行されると、最初のプランが使用されます。どちらのプランでも、IsDeleted 項目のインデックスが作成されていないため、削除済みとマークされているレコードを除外する場合に使用される 2 つ目の最適化がありません。