Da die kurzen UltraLite-Pläne Textzusammenfassungen des Zugriffs auf eine Abfrage sind, müssen Sie wissen, wie die Vorgänge eines Join- oder Scan-Vorgangs einer Tabelle implementiert werden.
Für Scan-Vorgänge Scan-Vorgänge werden durch einen einzelnen Operanden dargestellt, der sich auf eine einzelne Tabelle bezieht und einen Index verwendet. Der Tabellenname und der Indexname werden in runden Klammern ( (, ) ) im Anschluss an den Vorgangsnamen angezeigt.
Für andere Vorgänge Andere Vorgänge werden durch einen oder mehrere Operanden dargestellt, die auch selbst Pläne sein können. In UltraLite sind diese Operanden durch Kommas getrennte Listen, die zwischen eckigen Klammern ( [ ] ) stehen.
In der folgenden Liste sind die Vorgänge aufgeführt, die von UltraLite unterstützt werden.
Vorgang | Beschreibung |
---|---|
count(*) |
Zählt die Anzahl der Zeilen in einer Tabelle |
distinct[ Plan ] |
Implementiert den DISTINCT-Aspekt einer Abfrage, um doppelte Zeilen zu vergleichen und zu eliminieren. Der Vorgang wird verwendet, wenn der zugrunde liegende Plan Zeilen so sortiert, dass aufeinander folgende doppelte Zeilen eliminiert werden. Wenn zwei aufeinander folgende Zeilen übereinstimmen, wird nur die erste Zeile zur Ergebnismenge hinzugefügt. |
dummy |
Es wird kein Vorgang ausgeführt. Der Vorgang wird nur in zwei Fällen verwendet:
|
filter[ Plan ] |
Führt für jede Zeile, die vom zugrunde liegenden Plan bereitgestellt wird, eine Suchbedingung aus. Nur die als TRUE ausgewerteten Zeilen werden an die Ergebnismenge übergeben. |
group-by[ Plan ] |
Erstellt ein Aggregat von GROUP BY-Ergebnissen, um mehrere Zeilen von gruppierten Daten zu sortieren. Zeilen werden in der vorgefundenen Reihenfolge aufgelistet und durch den Vergleich der aufeinander folgenden Zeilen gruppiert. |
group-single[ Plan ] |
Erstellt ein Aggregat von GROUP BY-Ergebnissen, jedoch nur, wenn bekannt ist, dass eine einzelne Zeile zurückgegeben wird. |
keyset[ Plan ] |
Zeichnet auf, welche Zeilen verwendet werden, um Zeilen in einer temporären Tabelle zu erstellen, sodass UltraLite die Ausgangszeilen aktualisieren kann. Wenn diese Zeilen nicht aktualisiert werden sollen, verwenden Sie die FOR READ ONLY-Klausel in der Abfrage, um diesen Vorgang zu eliminieren. |
index-scan( Tabellenname, Indexname ) |
Liest nur einen Teil der Tabelle. Der Index wird verwendet, um die Startzeile zu finden. |
join[ Plan, Plan ] |
Führt einen Inner-Join zwischen zwei Plänen aus |
lojoin[ Plan, Plan ] |
Führt einen Links-Outer-Join zwischen zwei Plänen aus |
like-scan( Tabellenname, Indexname ) |
Liest nur einen Teil einer Tabelle. Der Index wird verwendet, um die Startzeile durch Mustervergleich zu finden. |
rowlimit[ Plan ] |
Führt den Zeilenbegrenzungsvorgang für übertragene Zeilen aus. Zeilenbegrenzungen werden mit der TOP n- bzw. FIRST-Klausel der SELECT-Anweisung gesetzt. |
scan( Tabellenname, Indexname ) |
Liest eine gesamte Tabelle unter Befolgung der Reihenfolge, die durch den Index vorgegeben ist. |
sub-query[ Plan ] |
Markiert den Start einer Unterabfrage |
temp[ Plan ] |
Erstellt eine temporäre Tabelle aus den Zeilen im zugrunde liegenden Plan. UltraLite verwendet eine temporäre Tabelle, wenn zugrunde liegende Zeilen sortiert werden müssen und kein Index gefunden wurde, um diese Reihenfolge aufzubauen. Sie können einen Index hinzufügen, um die Erstellung der temporären Tabelle zu vermeiden. Jeder zusätzliche Index erhöht jedoch die Dauer für das Einfügen oder Synchronisieren von Zeilen in der Tabelle, auf die sich der Index bezieht. |
union-all[ Plan, ..., Plan ] |
Führt einen UNION ALL-Vorgang für die Zeilen aus, die vom zugrunde liegenden Plan generiert werden |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |