Teilen über


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 einem union-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).