Une fois activé dans la Developer Console, vous pouvez accéder à l’outil de plan de requête dans l’onglet Éditeur de requête de la console.
Pour utiliser l’outil de plan de requête, entrez simplement une requête dans l’onglet Éditeur de requête et cliquez sur Plan de requête pour afficher toutes les opérations de requête et le coût de chacune pour le SOQL fourni.
Utilisez cet outil pour vérifier le plan de requête pour toutes les requêtes SOQL qui s’exécutent lentement. Il vous fournira un aperçu des différents plans et, si certains des filtres sont indexés, il vous indiquera le coût d’utilisation de l’index par rapport à une analyse de tableau complète.
Si le coût de l’analyse de tableau est inférieur à celui de l’index et que la requête expire, ou si vous avez un autre filtre sélectif dans cette requête qui n’est pas indexé mais qui pourrait l’être, vous devrez effectuer une analyse plus approfondie sur l’utilisation d’autres filtres pour améliorer la sélectivité.
L’outil de plan de requête affichera une liste des plans disponibles que notre optimiseur de requêtes peut utiliser pour la requête fournie et sera organisé par coût croissant.
Chaque plan contiendra des informations sur la cardinalité, le type d’opération, le coût, le type sObject, etc. Chaque plan a un type d’opération principal, par exemple, un index de champ ou une analyse complète de tableau. Le plan avec le coût le plus bas est le plan utilisé pour assurer l’exécution de la requête.
Cardinalité |
Champs |
Type d’opération principal |
Coût |
Cardinalité sObject |
Type sObject |
|---|---|---|---|---|---|
|
Nombre estimé d’enregistrements renvoyés par le type d’opération principal.
Par exemple, le nombre d’enregistrements renvoyés si vous utilisez un tableau d’index. | Le ou les champs indexés utilisés par l’optimiseur de requêtes. Si le type d’opération principal est Index, la valeur des champs est Index. Sinon, la valeur des champs est null. |
Type d’opération principal que Salesforce utilisera pour optimiser la requête.
| Coût de la requête par rapport au seuil de sélectivité de l’optimiseur de requêtes Force.com. Les valeurs supérieures à 1 signifient que la requête ne sera pas sélective. |
Nombre d’enregistrements approximatif pour l’objet interrogé.
|
Nom de l’objet interrogé.
|
Chaque plan a sa propre valeur de coût. Cette valeur de coût est dérivée des dernières statistiques de base de données (DB) rassemblées sur le tableau et les valeurs. Le plan avec le coût le plus bas sera le plan utilisé. Si le coût est supérieur à 1, cela signifie que la requête ne sera pas sélective.
Si la requête que vous avez fournie contient un champ indexé dans les filtres, le plan ne sera affiché pour ce champ que si vous utilisez une opération prise en charge contre ce champ.
Voici une liste de opérations non prises en charge :
L’outil de plan de requête n’affiche que les statistiques des champs indexés dans la section du plan, et non les champs qui pourraient être indexés. Il ne fournit pas d’informations sur les champs qui peuvent être indexés.
Veuillez consulter la section Comment rendre ma requête SOQL sélective pour déterminer les champs pouvant être indexés.
Les exemples suivants utilisent 2 champs indexés. Une case à cocher (InActiveAcc__c) et une liste de sélection (Account_Hierarchy__c) sur le sObject Compte.
Remarque : vous pouvez trouver d’autres exemples de requêtes dans l’article original sur la version pilote du paramètre de feedback sur la ressource query, à partir duquel ce nouvel outil Developer Console a évolué.
SELECT count() FROM Account WHERE Account_Hierarchy__c = ’Parent’
Scénario : Un champ indexé avec une variable de liaison sélective
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c = ’Parent’
Scénario : 2 champs indexés, 1 sélectif
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c != ’Parent’ **NOTE: Using unsupported operation on index**
Scénario : 2 champs indexés, 1 sélectif, MAIS avec une opération non prise en charge
SELECT count() FROM Account WHERE Account_Hierarchy__c = ’Child’
Scénario : 1 champ indexé utilisant une variable de liaison non sélective (> 10 % du nombre de lignes du sObject)
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.