Optimizar el rendimiento mediante FetchXml
Este artículo describe formas de optimizar el rendimiento al recuperar datos mediante FetchXml.
Consulta de materialización tardía
Si selecciona muchas columnas de búsqueda y calculadas y tiene problemas de rendimiento, puede intentar configurar el atributo elemento de Fetch booleano latematerialize
. Detrás de escena, esta configuración divide la consulta en partes más pequeñas y vuelve a ensamblar los resultados antes de devolvérselos.
Utilizar el atributo latematerialize
puede no proporcionar siempre un beneficio de rendimiento. Podría hacer que las consultas simples se ejecuten más lentamente. Es más beneficioso cuando su consulta:
- Tiene muchas combinaciones
- Contiene muchas columnas, columnas de búsqueda o columnas calculadas.
Sugerencias de consulta
Importante
Aplique estas opciones únicamente cuando lo recomiende el soporte técnico de Microsoft. El uso incorrecto de estas opciones puede dañar el rendimiento de una consulta.
Microsoft SQL Server admite muchas sugerencias de consulta para optimizar las consultas. FetchXML admite sugerencias de consulta y puede pasar estas opciones de consulta a SQL Server utilizando el atributo fetch element options .
Query option | SQL Server hint |
---|---|
OptimizeForUnknown |
Optimize for unknown |
ForceOrder |
Force Order |
DisableRowGoal |
Hint: DISABLE_OPTIMIZER_ROWGOAL |
EnableOptimizerHotfixes |
Hint: ENABLE_QUERY_OPTIMIZER_HOTFIXES |
LoopJoin |
Loop Join |
MergeJoin |
Merge Join |
HashJoin |
Hash Join |
NO_PERFORMANCE_SPOOL |
NO_PERFORMANCE_SPOOL |
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
Hint: ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
More information: Hints (Transact-SQL) - Query
No lock
En versiones anteriores, se utilizaba el atributo no-lock
para evitar bloqueos compartidos en registros. Ya no es necesario incluir este atributo.
Sugerencia de combinación
Puede mejorar el rendimiento agregando un elemento de filtro que establece la condición para columnas en diferentes tablas configurando el atributo hint
en union
. Pero existen algunas restricciones:
- El filtro debe utilizar el tipo de filtro
or
. - Cada consulta puede contener sólo una sugerencia de
union
. - Si un filtro con la sugerencia de
union
no está en el filtro de nivel superior, Dataverse transforma la consulta y mueve el filtro con sugerencia deunion
para el filtro raíz. - Si la sugerencia de
union
tiene más de tres niveles de profundidad, se ignora.
El siguiente ejemplo establece un filtro con la sugerencia de union
en la columna telephone1
para las tablas cuenta y contacto.
<fetch>
<entity name="email">
<attribute name="activityid" />
<attribute name="subject" />
<filter type="and">
<condition attribute="subject"
operator="like"
value="Alert:%" />
<condition attribute="statecode"
operator="eq"
value="0" />
<filter type="or"
hint="union">
<condition attribute="telephone1"
operator="eq"
value="555-123-4567"
entityname="ac" />
<condition attribute="telephone1"
operator="eq"
value="555-123-4567"
entityname="co" />
</filter>
</filter>
<link-entity name="account"
from="accountid"
to="regardingobjectid"
link-type="outer"
alias="ac" />
<link-entity name="contact"
from="contactid"
to="regardingobjectid"
link-type="outer"
alias="co" />
</entity>
</fetch>
Consulte también
Consultar datos mediante FetchXML
Usar FetchXml para recuperar datos
Seleccionar columnas mediante FetchXml
Unir tablas mediante FetchXml
Ordenar filas mediante FetchXml
Filtrar filas mediante FetchXml
Paginar resultados mediante FetchXml
Agregar datos mediante FetchXML
Contar filas mediante FetchXml
Referencia de FetchXml
Código de ejemplo de FetchXml
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de