Folgende Abkürzungen werden in Ausführungsplänen verwendet:
Kurzer Textplan | Ausführlicher Textplan | Zusätzliche Informationen |
---|---|---|
Beste Pläne mit Kosten | Der Optimierer erstellt für eine gegebene Abfrage Zugriffspläne und berechnet die Kosten. Während dieses Vorgangs wird der aktuelle beste Plan möglicherweise durch einen neuen besten Plan ersetzt, bei dem die Kostenschätzung geringer ausfällt. Dieser letzte Plan ist der Ausführungsplan, der zum Ausführen der Anweisung verwendet wird. Kostenberechnete beste Pläne geben die Häufigkeit an, mit der der Optimierer einen besseren Plan als den aktuellen besten Plan gefunden hat. Eine niedrige Zahl gibt an, dass der beste Plan frühzeitig im Enumerationsvorgang festgelegt wurde. Da der Optimierer bei einer gegebenen Anweisung den Enumerationsvorgang zumindest einmal pro Abfrageblock startet, stellen kostenberechnete beste Pläne die kumulative Zählung dar. | |
Pläne mit Kosten | Viele vom Optimierer generierte Pläne erweisen sich als zu kostenträchtig, verglichen mit dem bisherigen besten Plan. Pläne mit Kosten geben die Anzahl der partiellen oder vollständigen Pläne an, die der Optimierer bei einer gegebenen Anweisung während des Enumerationsvorgangs in Betracht gezogen hat. | |
** | ** | Ein vollständiger Index-Scan. Der Index-Scan liest alle Zeilen. |
DELETE | Delete | Der Stammknoten eines DELETE-Vorgangs. |
DistH | HashDistinct | HashDistinct nimmt eine einzelne Eingabe und gibt alle unterschiedlichen Zeilen zurück. |
DistO | OrderedDistinct | OrderedDistinct liest jede Zeile und vergleicht sie mit der vorherigen Zeile. Wenn sie gleich ist, wird sie ignoriert, andernfalls wird sie ausgegeben. |
DP | DecodePostings | DecodePostings dekodiert Positionsdaten für die Begriffe im Textindex. |
DT | DerivedTable | DerivedTable erscheint möglicherweise in einem Plan, entweder aufgrund von Neuschreibungsoptimierungen einer Abfrage oder aus verschiedenen anderen Gründen, besonders wenn die Abfrage einen oder mehrere Outer-Joins umfasst. |
EAH | HashExceptAll |
Gibt an, dass eine Hash-basierte Implementierung des SQL-Mengendifferenzenoperators EXCEPT verwendet wurde. |
EAM | MergeExceptAll |
Gibt an, dass eine sortierungsbasierte Implementierung des SQL-Mengendifferenzenoperators EXCEPT verwendet wurde. |
EH | HashExcept |
Gibt an, dass eine Hash-basierte Implementierung des SQL-Mengendifferenzenoperators EXCEPT verwendet wurde. |
EM | MergeExcept |
Gibt an, dass eine sortierungsbasierte Implementierung des SQL-Mengendifferenzenoperators EXCEPT verwendet wurde. |
Exchange | Exchange |
Gibt an, dass beim Verarbeiten einer SELECT-Anweisung abfrageinterne Parallelität verwendet wurde. |
Filter | Filter |
Gibt an, dass Suchbedingungen angewendet werden. Dazu gehören alle Arten von Prädikaten, Vergleiche unter Verwendung von Unterabfrage-Bedingungen sowie EXISTS- und NOT EXISTS-Unterabfragen (und andere Formen quantifizierter Unterabfragen). |
GrByH | HashGroupBy |
HashGroupBy baut eine speicherresidente Hash-Tabelle auf, die eine Zeile pro Gruppe enthält. Beim Lesen der Eingabezeilen werden die zugeordneten Gruppen in der Arbeitstabelle gesucht. Die Aggregatfunktionen werden aktualisiert, und die Gruppenzeile wird erneut in die Arbeitstabelle geschrieben. Wenn kein Gruppendatensatz vorhanden ist, wird ein neuer Gruppendatensatz initialisiert und in die Arbeitstabelle eingefügt. |
GrByHClust | HashGroupByClustered |
In manchen Fällen sind die Werte in den Gruppenspalten der Eingabetabelle gebündelt (clustered), d.h. ähnliche Werte treten nahe beieinander auf. ClusteredHashGroupBy nutzt diese Clusterbildung. |
GrByHP | ParallelHashGroupBy |
Eine Variante von HashGroupBy. |
GrByHSets | HashGroupBySets |
Als eine Variante von HashGroupBy wird HashGroupBySets verwendet, wenn GROUPING SETS-Abfragen durchgeführt werden sollen. |
GrByO | OrderedGroupBy |
OrderedGroupBy liest eine Eingabe, die nach Gruppierungsspalten sortiert ist. Jede einzelne Zeile wird gelesen und mit der vorhergehenden Zeile verglichen. Wenn die gruppierten Spalten übereinstimmen, wird die gegenwärtige Gruppe aktualisiert; anderenfalls wird die gegenwärtige Gruppe ausgegeben, und es wird mit einer neuen Gruppe begonnen. |
GrByOSets | OrderedGroupBySets |
Als eine Variante von OrderedGroupBy wird OrderedGroupBySets verwendet, wenn GROUPING SETS-Abfragen durchgeführt werden sollen. |
GrByS | SingleRowGroupBy |
Wenn kein GROUP BY angegeben ist, wird SingleRowGroupBy verwendet, um ein einzelnes Zeilenaggregat zu erzeugen. Eine einzelne Gruppenzeile verbleibt im Speicher und wird bei jeder Eingabezeile aktualisiert. |
GrBySSets | SortedGroupBySets |
SortedGroupBySets wird bei der Verarbeitung von OLAP-Abfragen verwendet, die GROUPING SETS enthalten. |
HF | HashFilter |
Gibt an, dass ein Hash-Filter (oder Bloom-Filter) verwendet wurde. |
HFP | ParallelHashFilter |
Gibt an, dass ein Hash-Filter (oder Bloom-Filter) verwendet wurde. |
HTS | HashTableScan |
Gibt an, dass ein Hash-Table-Scan verwendet wurde. |
IAH | HashIntersectAll |
Gibt an, dass eine Hash-basierte Implementierung des SQL-Mengendifferenzenoperators INTERSECT verwendet wurde. |
IAM | MergeIntersectAll |
Gibt an, dass eine sortierungsbasierte Implementierung des SQL-Mengendifferenzenoperators INTERSECT verwendet wurde. |
IH | HashIntersect |
Gibt an, dass eine Hash-basierte Implementierung des SQL-Mengendifferenzenoperators INTERSECT verwendet wurde. |
IM | MergeIntersect |
Gibt an, dass eine sortierungsbasierte Implementierung des SQL-Mengendifferenzenoperators INTERSECT verwendet wurde. |
IN | InList |
InList wird in Fällen verwendet, bei denen ein IN-Listenprädikat unter Verwendung eines Indexes erfüllt werden kann. |
Tabellenname<Indexname> |
IndexScan, ParallelIndexScan | In einem grafischen Plan wird ein Index-Scan als Indexname in einem Trapez dargestellt. |
INSENSITIVE | Insensitive | |
INSERT | Insert | Stammknoten eines INSERT-Vorgangs. |
IO | IndexOnlyScan, ParallelIndexOnlyScan |
Gibt an, dass der Optimierer einen Index verwendet hat, der alle zum Erfüllen der Abfrage erforderlichen Daten enthielt. |
JH | HashJoin |
Der HashJoin-Algorithmus erstellt eine speicherresidente Hash-Tabelle der kleineren der beiden Eingaben. Dann liest er die größere Eingabe und untersucht die Hash-Tabelle im Speicher auf Übereinstimmungen, die dann in eine Arbeitstabelle geschrieben werden. Wenn die kleinere Eingabe nicht in den Speicher passt, teilt HashJoin beide Eingaben in kleinere Arbeitstabellen auf. Diese kleineren Arbeitstabellen werden rekursiv abgearbeitet, bis die kleinere Eingabe in den Speicher passt. |
JHS | HashSemijoin |
HashSemijoin führt einen Semijoin zwischen der linken und der rechten Seite durch. |
JHSP | ParallelHashSemijoin |
Eine Variante von HashJoin. |
JHFO | Full Outer HashJoin |
Eine Variante von HashJoin. |
JHA | HashAntisemijoin |
HashAntisemijoin führt einen Anti-Semijoin zwischen der linken und der rechten Seite durch. |
JHAP | ParallelHashAntisemijoin |
Eine Variante von HashJoin. |
JHO | Left Outer HashJoin |
Eine Variante von HashJoin. |
JHP | ParallelHashJoin |
Eine Variante von HashJoin. |
JHPO | ParallelLeftOuterHashJoin |
Eine Variante von HashJoin. |
JHR | RecursiveHashJoin |
Eine Variante von HashJoin. |
JHRO | RecursiveLeftOuterHashJoin |
Eine Variante von HashJoin. |
JM | MergeJoin |
MergeJoin liest zwei Eingaben, die beide nach den Join-Attributen sortiert sind. Für jede Zeile in der linken Eingabe liest der Algorithmus alle übereinstimmenden Zeilen der rechten Eingabe, indem er auf die Zeilen in sortierter Reihenfolge zugreift. |
JMFO | Full Outer MergeJoin |
Eine Variante von MergeJoin. |
JMO | Left Outer MergeJoin |
Eine Variante von MergeJoin. |
JNL | NestedLoopsJoin |
NestedLoopsJoin berechnet den Join zwischen seiner rechten und linken Seite, indem er die rechte Seite für jede Zeile der linken Seite vollständig liest. |
JNLA | NestedLoopsAntisemijoin |
NestedLoopsAntisemijoin verknüpft seine Eingaben, indem er die rechte Seite nach jeder Zeile der linken Seite durchsucht. |
JNLFO | Full Outer NestedLoopsJoin |
Eine Variante von NestedLoopsJoin. |
JNLO | Left Outer NestedLoopsJoin |
Eine Variante von NestedLoopsJoin. |
JNLS | NestedLoopsSemijoin |
NestedLoopsSemijoin verknüpft seine Eingaben, indem er die rechte Seite nach jeder Zeile der linken Seite durchsucht. |
KEYSET | Keyset |
Gibt einen Keyset-gesteuerten Cursor an. |
LOAD | Load |
Stammknoten eines LOAD-Vorgangs. |
MultiIdx | MultipleIndexScan |
Die MultipleIndexScan-Methode wird verwendet, wenn ein Index verwendet werden kann oder muss, um eine Abfrage zu erfüllen, die einen Satz von Suchbedingungen enthält, die mit den logischen Operatoren AND oder OR verbunden sind. |
OpenString | OpenString |
OpenString wird in Fällen verwendet, bei denen die FROM-Klausel einer SELECT-Anweisung eine OPENSTRING-Klausel enthält. |
Optimierungszeit | Die Gesamtzeit, die der Optimierer bei einer gegebenen Anweisung während aller Enumerationsvorgänge verbraucht hat. | |
PC | ProcCall | Procedure call (Prozeduraufruf, Tabellenfunktion). |
PreFilter | PreFilter |
Filter wenden Suchbedingungen an. Dazu gehören alle Arten von Prädikaten, Vergleiche zwischen beteiligten Unterabfrage-Bedingungen sowie EXISTS- und NOT EXISTS-Unterabfragen (und andere Formen quantifizierter Unterabfragen). |
R | R | Ein umgekehrter Index-Scan. Der Index-Scan liest die Zeilen aus dem Index in umgekehrter Reihenfolge. |
RL | RowLimit |
RowLimit gibt die ersten n Zeilen seiner Eingabe zurück und ignoriert die restlichen Zeilen. Zeilenbegrenzungen werden mit der TOP n- bzw. FIRST-Klausel der SELECT-Anweisung gesetzt. |
ROWID | RowIdScan | In einem grafischen Plan wird ein RowID Scan als Tabellenname in einem Rechteck dargestellt. |
ROWS | RowConstructor |
RowConstructor ist ein spezialisierter Operator, der eine virtuelle Zeile erstellt, die als Eingabe für andere Algorithmen verwendet werden kann. |
RR | RowReplicate |
RowReplicate wird während der Ausführung von Mengenoperationen wie etwa EXCEPT ALL und INTERSECT ALL verwendet. |
RT | RecursiveTable | Gibt an, dass als Ergebnis einer WITH-Klausel in einer Abfrage eine rekursive Tabelle benutzt wurde, wobei die WITH-Klausel für rekursive Vereinigungsabfragen verwendet wurde. |
RU | RecursiveUnion |
RecursiveUnion wird während der Ausführung von rekursiven Vereinigungsabfragen verwendet. |
SELECT | Select | Stammknoten eines SELECT-Vorgangs. |
seq | TableScan, ParallelTableScan | In einem grafischen Plan werden Table-Scans als Tabellenname in einem Rechteck dargestellt. |
Sortieren | Sortieren | Indizierte Sortierung oder Zusammenführungssortierung. |
SrtN | SortTopN |
SortTopN wird für Abfragen verwendet, die eine TOP N-Klausel und eine ORDER BY-Klausel enthalten. |
TermBreak | TermBreak | Der TermBreaker-Algorithmus für Volltextsuche. |
UA | UnionAll |
UnionAll liest die Zeilen aus jeder seiner Eingaben und gibt sie wieder aus, gleichgültig ob Duplikate vorhanden sind oder nicht. Dieser Algorithmus wird verwendet, um UNION- und UNION ALL-Anweisungen zu implementieren. |
UPDATE | Update | Der Stammknoten eines UPDATE-Vorgangs. |
Window | Window |
Window wird bei der Berechnung von OLAP-Abfragen verwendet, die Fensterfunktionen verwenden. |
Work | Work table | Ein interner Knoten, der ein Zwischenergebnis darstellt. |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |