SQL Anywhere kann Suchbedingungen häufig mithilfe von Indizes auswerten. Indem er einen Index verwendet, kann der Optimierer
den Zugriff auf Daten beschleunigen und die Menge der aus den Basistabellen zu lesenden und zu verarbeitenden Daten verringern.
Beispiel: Wenn eine Abfrage eine Suchbedingung WHERE Spaltenname=Wert
enthält, und es einen Index auf der Spalte gibt, kann ein Index-Scan verwendet werden, um nur die Zeilen der Tabelle einzulesen,
die die Suchbedingung erfüllen.
Auch beim Verknüpfen von Tabellen steigern Indizes die Performance dramatisch.
Wann immer es möglich ist, versucht der Optimierer, die Abfrage mithilfe eines reinen Indexabrufs auszuführen. Bei einem reinen Indexabruf verwendet der Datenbankserver nur die Daten in den Indizes, die nötig sind, um die Abfrage auszuführen; so muss er nicht auf Zeilen in der Tabelle zugreifen.
In Fällen, bei denen es keine Indizes gibt, die der Optimierer verwenden kann, wird ein sequenzieller Table-Scan durchgeführt, was kostenträchtig sein kann.
Der Optimierer wählt automatisch die Indizes aus, bei denen er festgestellt hat, dass sie die beste Performance liefern. Sie können allerdings auch Index-Hints in Ihrer Abfrage verwenden, um die Indizes festzulegen, die der Optimierer verwenden soll. Wenn einer der angegebenen Indizes nicht verwendet werden kann, wird ein Fehler zurückgegeben. Beachten Sie, dass Index-Hints zu einer Verschlechterung der Performance führen können und daher nur von erfahrenen Benutzern verwendet werden sollten. Siehe FROM-Klausel.
Verwenden Sie den Indexberater, um zu bestimmen, ob zusätzliche Indizes für Ihre Datenbank empfohlen werden. Siehe Indexberater.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |