Una vez activada en Developer Console, puede acceder a la herramienta Planificación de consultas en la ficha Query Editor (Editor de consultas) de la consola.
Para utilizar la herramienta Planificación de consultas, solo tiene que introducir una consulta en Query Editor y pulsar Query Plan (Planificación de consultas) para mostrar todas las operaciones de consultas y el coste de cada una para el SOQL proporcionado.
Utilice esta herramienta para comprobar la Planificación de consultas para cualquier consulta que se ejecute lentamente. Le proporcionará la perspectiva de los planes diferentes y si tiene algunos de los filtros indexados, proporcione el coste del uso del índice comparado con una exploración de tabla completa.
Si el coste de la exploración de tabla es inferior al índice, y la consulta está agotando el tiempo de espera, tendrá que realizar más análisis sobre el uso de otros filtros para mejorar la selectividad, o si tiene otro filtro selectivo en esa consulta que no esté indexado pero que sea candidato para uno.
La herramienta Planificación de consultas mostrará una lista de los planes disponibles que nuestro optimizador de consultas puede utilizar para la consulta proporcionada, que se dispondrá por coste ascendente.
Cada plan contendrá información sobre Cardinalidad, Tipo de operación, Coste, Tipo de sObject, entre otra. Cada plan tiene un Tipo de operación principal, como por ejemplo Índice de campos o Exploración de tabla completa. El plan con el coste inferior es el plan que se utiliza para dirigir la ejecución de la consulta.
Cardinalidad |
Campos |
Tipo de operación principal |
Coste |
Cardinalidad de sObject |
Tipo de sObject |
|---|---|---|---|---|---|
|
El número de registros estimado que el tipo de operación líder devolvería.
Por ejemplo, el número de registros devueltos si se utiliza una tabla de índice. | Los campos indexados utilizados por el optimizador de consultas. Si el tipo de operación principal es Índice, el valor de los campos es Índice. En caso contrario, el valor de los campos es nulo. |
El tipo de operación principal que Salesforce utilizará para optimizar la consulta.
| El coste de la consulta comparado con el umbral de selectividad del optimizador de consultas de Force.com. Los valores por encima de 1 significan que la consulta no será selectiva. |
El recuento aproximado de registros para el objeto consultado.
|
El nombre de lo consultado.
|
Cada plan tiene su propio valor de coste. El valor del coste se deriva de los datos estadísticos más recientes recopilados desde la base de datos (DB) en la tabla y los valores. El plan con el coste inferior será el plan utilizado. Si el coste está por encima de 1, significa que la consulta no será selectiva.
Si la consulta que proporcionó contiene un campo indexado en los filtros, se mostrará el plan para ese campo solo si está utilizando una operación admitida sobre ese campo.
A continuación aparece una lista de operaciones no admitidas:
La herramienta Planificación de consultas solo mostrará datos estadísticos de campos indexados en la sección del plan, no los campos que podrían indexarse. Esta herramienta no proporciona información sobre campos que puedan indexarse.
Consulte Cómo hacer mi consulta SOQL selectiva sobre la determinación de qué campos pueden indexarse.
Los siguientes ejemplos utilizan 2 campos indexados. Una casilla de verificación (InActiveAcc__c) y una lista de selección (Account_Hierarchy__c) en el sObject Account (Cuenta).
Nota: Podrá encontrar más consultas de ejemplos en la publicación original sobre el Piloto de parámetros de comentarios de recursos de consultas desde la que evolucionó esta nueva herramienta de Developer Console.
SELECT count() FROM Account WHERE Account_Hierarchy__c = 'Parent'
Escenario: Un campo indexado con una variable de enlace selectiva
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c = 'Parent'
Escenario: 2 campos indexados, 1 selectivo
SELECT count() FROM Account WHERE InActiveAcc__c = true AND Account_Hierarchy__c != 'Parent' **NOTA: Se está utilizando una operación no admitida en el índice**
Escenario: 2 campos indexados, 1 selectivo PERO utilizando una operación no admitida
SELECT count() FROM Account WHERE Account_Hierarchy__c = 'Child'
Escenario: 1 campo indexado utilizando una variable de enlace no selectiva (>10% del recuento de filas del 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.