Leistung mithilfe von FetchXml optimieren
In diesem Artikel werden Möglichkeiten beschrieben, wie Sie die Leistung beim Abrufen von Daten mit FetchXml optimieren können.
„Late Materialize”-Abfrage
Wenn Sie viele Such- und berechnete Spalten auswählen und Leistungsprobleme auftreten, können Sie versuchen, das boolesche latematerialize
-Attribut des Fetch-Elements festzulegen. Im Hintergrund zerlegt diese Einstellung die Abfrage in kleinere Teile und setzt die Ergebnisse neu zusammen, bevor sie an Sie zurückgegeben werden.
Die Verwendung des latematerialize
-Attributs bringt unter Umständen nicht immer einen Leistungsvorteil. Dadurch werden einfache Abfragen möglicherweise langsamer ausgeführt. Am vorteilhaftesten ist es, wenn Ihre Abfrage:
- Viele Verknüpfungen hat
- Viele Suchspalten oder berechnete Spalten enthält
Abfragehinweise
Wichtig
Wenden Sie diese Optionen nur an, wenn dies vom technischen Microsoft-Support empfohlen wird. Eine falsche Verwendung dieser Optionen kann die Leistung einer Abfrage beeinträchtigen.
Microsoft SQL Server unterstützt viele Abfragehinweise zur Optimierung von Abfragen. FetchXML unterstützt Abfragehinweise und kann diese Abfrageoptionen an SQL Server übergeben, unter Verwendung des Options-Attributs des Fetch-Elements.
FetchXML-Option | SQL Server-Hinweis |
---|---|
OptimizeForUnknown |
Für unbekannt optimieren |
ForceOrder |
Befehl durchsetzen |
DisableRowGoal |
Hinweis: DISABLE_OPTIMIZER_ROWGOAL |
EnableOptimizerHotfixes |
Hinweis: ENABLE_QUERY_OPTIMIZER_HOTFIXES |
LoopJoin |
Loop verbinden |
MergeJoin |
Zusammenführen |
HashJoin |
Hash Join |
NO_PERFORMANCE_SPOOL |
NO_PERFORMANCE_SPOOL |
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
Hinweis: ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
Weitere Informationen: Hinweise (Transact-SQL) – Abfrage
Keine Sperre
In früheren Versionen war das no-lock
-Attribut, das verwendet wird, um gemeinsame Sperren für Datensätze zu verhindern. Es ist nicht mehr erforderlich, dieses Attribut einzuschließen.
Vereinigungshinweis
Sie können die Leistung verbessern, indem Sie ein Filterelement hinzufügen, das die Bedingung für Spalten in verschiedenen Tabellen festlegt, indem Sie das hint
-Attribut auf union
festlegen. Es gibt jedoch einige Einschränkungen:
- Der Filter muss den
or
-Filtertyp verwenden. - Jede Abfrage kann nur einen
union
-Hinweis enthalten. - Wenn ein Filter mit
union
-Hinweis sich nicht im Filter der obersten Ebene befindet, transformiert Dataverse die Abfrage und verschiebt den Filter mit einemunion
-Hinweis zum Stammfilter. - Wenn ein
union
-Hinweis mehr als drei Ebenen hat, wird er ignoriert.
Im folgenden Beispiel wird ein Filter mit einem union
-Hinweis auf die telephone1
-Spalte für beide Konto- und Kontakt-Tabellen festgelegt.
<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>
Siehe auch
Daten mithilfe von FetchXml abfragen
Daten mithilfe von FetchXml abrufen
Spalten mithilfe von FetchXml auswählen
Tabellen mithilfe von FetchXml verknüpfen
Zeilen mithilfe von FetchXml anordnen
Zeilen mithilfe von FetchXml filtern
Ergebnisse mithilfe von FetchXml auslagern
Daten mithilfe von FetchXML aggregieren
Zeilen mithilfe von FetchXml zählen
FetchXml-Referenz
FetchXml-Beispielcode
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für