この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

クエリのパフォーマンスに関するフィードバックを取得する

REST API クエリリソースでの explain の使用は、パイロット機能です。このパイロット機能に関連するサポートはありません。詳細は、salesforce.com, inc. にお問い合わせください。

メモ

Salesforce でクエリがどのように実行されるかについてフィードバックを取得するには、explain パラメータを指定して Query リソースを使用します。Salesforce では、各クエリを分析して、クエリ結果を取得するための最適な手段が検索されます。クエリおよびクエリ条件に応じて、インデックスまたは内部最適化が使用されることがあります。クエリを実際に実行せずに Salesforce でクエリがどのように最適化されるかについての詳細を返すには、explain パラメータを使用します。応答に基づいて、クエリをセレクティブにするための条件を追加するなどの変更を加えることによって、クエリのパフォーマンスを細かく調整するかどうかを決定できます。

応答には、最も最適なものから順に並び替えられた、1 つ以上のクエリ実行プランが含まれます。クエリの実行時には最も最適なプランが使用されます。

explain を使用したときに返される項目についての詳細は、Queryの「explain パラメータ」を参照してください。クエリをセレクティブにする方法については、『Force.com Apex コード開発者ガイド』の「より効率的な SOQL クエリ」を参照してください。

Merchandise__c を使用するクエリに関するパフォーマンスフィードバックを取得する場合の使用例
1/services/data/v32.0/query/?explain=
2SELECT+Name+FROM+Merchandise__c+WHERE+CreatedDate+=+TODAY+AND+Price__c+>+10.0
パフォーマンスフィードバッククエリを実行する場合のレスポンスボディの例
1{
2  "plans" : [ {
3    "cardinality" : 1,
4    "fields" : [ "CreatedDate" ],
5    "leadingOperationType" : "Index",
6    "relativeCost" : 0.0,
7    "sobjectCardinality" : 3,
8    "sobjectType" : "Merchandise__c"
9  }, {
10    "cardinality" : 1,
11    "fields" : [ ],
12    "leadingOperationType" : "TableScan",
13    "relativeCost" : 0.65,
14    "sobjectCardinality" : 3,
15    "sobjectType" : "Merchandise__c"
16  } ]
17}

この応答は、このクエリに対して 2 つの可能な実行プランが Salesforce で検出されたことを示しています。最初のプランでは、このクエリのパフォーマンスを向上するために CreatedDate インデックス項目が使用されます。2 つ目のプランでは、インデックスを使用せずにすべてのレコードがスキャンされます。実際にクエリを実行するときには、最初のプランが使用されます。