Verwenden Sie dieses Tool, um den Abfrageplan aller (oder 'von allen') SOQL-Abfragen zu überprüfen, die langsam ausgeführt werden. Es wird Ihnen einen Einblick in die verschiedenen Pläne geben, und sollten Sie einige der Filter katalogisiert haben, erhalten Sie die Kosten für die Verwendung des Index im Vergleich zu einem vollständigen Tabellen-Scan.
Wenn die Kosten für den Tabellen-Scan niedriger sind als der Index und die Abfrage aussetzt, sollten Sie andere Filter verwenden, um die Selektivität zu verbessern. Andernfalls können Sie auch einen anderen selektiven Filter in dieser Abfrage verwenden, der vielleicht nicht indiziert ist, aber evtl. dafür in Frage kommen würde.
Das Abfrageplan-Tool zeigt eine Liste der verfügbaren Pläne, die unser Abfrageoptimierer für die bereitgestellte Abfrage verwenden kann, und wird nach Kosten aufsteigend sortiert.
Jeder Plan enthält Informationen über Kardinalität, Operationstyp, Kosten, sObjekt-Typ und mehr. Jeder Plan hat einen 'führenden Operationstyp', z.B. Feldindex oder Full Table Scan. Der Plan mit den niedrigsten Kosten ist der Plan, der für die Ausführung der Abfrage verwendet wird.
Kardinalität |
Felder |
Führender Operationstyp |
Kosten |
sObject Kardinalität |
sObject-Typ |
|---|---|---|---|---|---|
| Die geschätzte Anzahl der Datensätze, die der führende Operationstyp zurückgeben würde. Zum Beispiel die Anzahl der zurückgegebenen Datensätze bei Verwendung einer Indextabelle. | Das/die indizierte(n) Feld(er), das/die vom Abfrageoptimierer verwendet wird/werden. Wenn die führende Operationsart Index ist, ist der Feldwert Index. Andernfalls ist der Feldwert null. | Der Hauptvorgangstyp, den Salesforce zur Optimierung der Abfrage verwendet.
| Die Kosten der Abfrage im Vergleich zum Selektivitätsschwellenwert des Force.com-Abfrageoptimierers. Werte über 1 bedeuten, dass die Abfrage nicht selektiv ist. | Die ungefähre Anzahl der Datensätze für das abgefragte Objekt. | Der Name des abgefragten Objekts |
Jeder Plan hat seinen eigenen Kostenfaktor. Der Kostenfaktor wird aus den zuletzt gesammelten Datenbankstatistiken (DB-Statistiken) über die Tabelle und die Werte abgeleitet. Der Plan mit den niedrigsten Kosten wird der verwendete Plan sein. Wenn der Kostenfaktor über 1 liegt, bedeutet dies, dass die Abfrage nicht selektiv ist.
Wenn die von Ihnen bereitgestellte Abfrage ein indiziertes Feld in den Filtern enthält, wird der Plan für dieses Feld nur dann angezeigt, wenn Sie eine unterstützte Operation für dieses Feld verwenden.
Hier ist eine Liste der nicht unterstützten Operationen:
Das Abfrageplan-Tool zeigt nur indizierte Feldstatistiken im Bereich des Abfrageplans an, nicht aber Felder, die indiziert werden könnten. Dieses Tool stellt keine Informationen über Felder bereit, die indiziert werden können.
Siehe hierzu Wie mache ich meine SOQL-Abfrage selektiv , um zu bestimmen, welche Felder indiziert werden können.
Beispiele und wie man die Query-Plan-Ergebnisse interpretiert
Das folgende Beispiel verwendet 2 indizierte Felder. Ein Kontrollkästchen (InActiveAcc__c) und eine Picklist (Account_Hierarchy__c) auf dem Account sObjekt.
Hinweis: Weitere Beispielabfragen finden Sie im ursprünglichen Beitrag über den Query Resource Feedback Parameter Pilot, aus dem dieses neue Tool für die Entwicklerkonsole entstanden ist.
SELECT count() FROM Account WHERE Account_Hierarchy__c = 'Parent'
Szenario: Ein indiziertes Feld mit einer selektiven Bindungsvariablen
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c = 'Parent'
Szenario: 2 indizierte Felder, 1 selektiv
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c != 'Parent' **HINWEIS: Verwendung einer nicht unterstützten Operation auf dem Index**
Szenario: 2 indizierte Felder, 1 selektives ABER unter Verwendung einer nicht unterstützten Operation
SELECT count() FROM Account WHERE Account_Hierarchy__c = 'Child'
Szenario: 1 indiziertes Feld unter Verwendung einer nicht-selektiven Bindungsvariablen (>10% der Zeilenanzahl des sObjekts)
000386864

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.