Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrageverarbeitung » Abfragen optimieren und ausführen » Ausführungspläne lesen

 

Abkürzungen im Ausführungsplan

Folgende Abkürzungen werden in Ausführungsplänen verwendet:

Kurzer Textplan Ausführlicher Textplan Zusätzliche Informationen
Bester Plan 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. Weitere Hinweise finden Sie unter So funktioniert der Optimierer.

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.

DELETE Delete Der Stammknoten eines DELETE-Vorgangs. Weitere Hinweise finden Sie unter DELETE-Anweisung.
DistH HashDistinct

Weitere Hinweise finden Sie unter HashDistinct-Algorithmus (DistH).

DistO OrderedDistinct

Weitere Hinweise finden Sie unter OrderedDistinct-Algorithmus (DistO).

DP DecodePostings

Weitere Hinweise finden Sie unter DecodePostings (DP).

DT DerivedTable

Weitere Hinweise finden Sie unter DerivedTable-Algorithmus (DT).

EAH HashExceptAll

Weitere Hinweise finden Sie unter Except-Algorithmen (EAH, EAM, EH, EM).

EAM MergeExceptAll

Weitere Hinweise finden Sie unter Except-Algorithmen (EAH, EAM, EH, EM).

EH HashExcept

Weitere Hinweise finden Sie unter Except-Algorithmen (EAH, EAM, EH, EM).

EM MergeAccept

Weitere Hinweise finden Sie unter Except-Algorithmen (EAH, EAM, EH, EM).

Exchange Exchange

Weitere Hinweise finden Sie unter Exchange-Algorithmus (Exchange).

Filter Filter

Weitere Hinweise finden Sie unter Filter-Algorithmen (Filter, PreFilter).

GrByH HashGroupBy

Weitere Hinweise finden Sie unter HashGroupBy-Algorithmus (GrByH).

GrByHClust HashGroupByClustered

Weitere Hinweise finden Sie unter ClusteredHashGroupBy-Algorithmus (GrByHClust).

GrByHSets HashGroupBySets

Weitere Hinweise finden Sie unter HashGroupBySets-Algorithmus (GrByHSets).

GrByO OrderedGroupBy

Weitere Hinweise finden Sie unter OrderedGroupBy-Algorithmus (GrByO).

GrByOSets OrderedGroupBySets

Weitere Hinweise finden Sie unter OrderedGroupBySets-Algorithmus (GrByOSets).

GrByS SingleRowGroupBy

Weitere Hinweise finden Sie unter SingleRowGroupBy-Algorithmus (GrByS).

GrBySSets SortedGroupBySets

Weitere Hinweise finden Sie unter SortedGroupBySets-Algorithmus (GrBySSets).

HF HashFilter

Weitere Hinweise finden Sie unter Hash-Filter-Algorithmen (HF, HFP).

HFP ParallelHashFilter

Weitere Hinweise finden Sie unter Hash-Filter-Algorithmen (HF, HFP).

HTS HashTableScan

Weitere Hinweise finden Sie unter HashTableScan-Methode (HTS).

IAH HashIntersectAll

Weitere Hinweise finden Sie unter Intersect-Algorithmen (IH, IM, IAH, IAM).

IAM MergeIntersectAll

Weitere Hinweise finden Sie unter Intersect-Algorithmen (IH, IM, IAH, IAM).

IH HashIntersect

Weitere Hinweise finden Sie unter Intersect-Algorithmen (IH, IM, IAH, IAM).

IM MergeIntersect

Weitere Hinweise finden Sie unter Intersect-Algorithmen (IH, IM, IAH, IAM).

IN InList

Weitere Hinweise finden Sie unter InList-Algorithmus (IN).

Tabellenname<Indexname>

IndexScan, ParallelIndexScan

In einem grafischen Plan wird ein Index-Scan als Indexname in einem Trapez dargestellt. Weitere Hinweise finden Sie unter IndexScan-Methode.

INSENSITIVE Insensitive

Weitere Hinweise finden Sie unter Intersect-Algorithmen (IH, IM, IAH, IAM).

INSERT Insert

Stammknoten eines INSERT-Vorgangs. Weitere Hinweise finden Sie unter INSERT-Anweisung.

IO IndexOnlyScan, ParallelIndexOnlyScan

Weitere Hinweise finden Sie unter IndexOnlyScan-Methode (IO) und ParallelIndexScan-Methode.

JH HashJoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHS HashSemijoin

Weitere Hinweise finden Sie unter HashSemijoin-Algorithmus (JHS).

JHSP ParallelHashSemijoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHFO Full Outer HashJoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHA HashAntisemijoin

Weitere Hinweise finden Sie unter HashAntisemijoin-Algorithmus (JHA).

JHAP ParallelHashAntisemijoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHO Left Outer HashJoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHP ParallelHashJoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHPO ParallelLeftOuterHashJoin

Weitere Hinweise finden Sie unter HashJoin-Algorithmen (JH, JHSP, JHFO, JHAP, JHO, JHPO).

JHR RecursiveHashJoin

Weitere Hinweise finden Sie unter RecursiveHashJoin-Algorithmus (JHR).

JHRO RecursiveLeftOuterHashJoin

Weitere Hinweise finden Sie unter RecursiveLeftOuterHashJoin-Algorithmus (JHRO).

JM MergeJoin

Weitere Hinweise finden Sie unter MergeJoin-Algorithmen (JM, JMFO, JMO).

JMFO Full Outer MergeJoin

Weitere Hinweise finden Sie unter MergeJoin-Algorithmen (JM, JMFO, JMO).

JMO Left Outer MergeJoin

Weitere Hinweise finden Sie unter MergeJoin-Algorithmen (JM, JMFO, JMO).

JNL NestedLoopsJoin

Weitere Hinweise finden Sie unter NestedLoopsJoin-Algorithmen (JNL, JNLFO, JNLO).

JNLA NestedLoopsAntisemijoin

Weitere Hinweise finden Sie unter NestedLoopsAntisemijoin-Algorithmus (JNLA).

JNLFO Full Outer NestedLoopsJoin

Weitere Hinweise finden Sie unter NestedLoopsJoin-Algorithmen (JNL, JNLFO, JNLO).

JNLO Left Outer NestedLoopsJoin

Weitere Hinweise finden Sie unter NestedLoopsJoin-Algorithmen (JNL, JNLFO, JNLO).

JNLS NestedLoopsSemijoin

Weitere Hinweise finden Sie unter NestedLoopsSemijoin-Algorithmus (JNLS).

KEYSET Keyset

Gibt einen Keyset-gesteuerten Cursor an. Weitere Hinweise finden Sie unter SQL Anywhere-Cursor.

LOAD Load

Stammknoten eines LOAD-Vorgangs. Weitere Hinweise finden Sie unter LOAD TABLE-Anweisung.

MultiIdx MultipleIndexScan

Weitere Hinweise finden Sie unter MultipleIndexScan-Methode (MultIdx).

OpenString OpenString

Weitere Hinweise finden Sie unter OpenString-Algorithmus (OpenString).

Optimierungszeit

Die Gesamtzeit, die der Optimierer bei einer gegebenen Anweisung während aller Enumerationsvorgänge verbraucht hat.

PC ProcCall

Procedure call (Prozeduraufruf, Tabellenfunktion). Weitere Hinweise finden Sie unter ProcCall-Algorithmus (PC).

PreFilter PreFilter

Weitere Hinweise finden Sie unter Filter-Algorithmen (Filter, PreFilter).

RL RowLimit

Weitere Hinweise finden Sie unter RowLimit-Algorithmus (RL).

ROWID RowIdScan

In einem grafischen Plan wird ein RowID Scan als Tabellenname in einem Rechteck dargestellt. Weitere Hinweise finden Sie unter RowIdScan-Methode (ROWID).

ROWS RowConstructor

Weitere Hinweise finden Sie unter RowConstructor-Algorithmus (ROWS).

RR RowReplicate

Weitere Hinweise finden Sie unter RowReplicate-Algorithmus (RR).

RT RecursiveTable

Weitere Hinweise finden Sie unter RecursiveTable-Algorithmus (RT).

RU RecursiveUnion

Weitere Hinweise finden Sie unter RecursiveUnion-Algorithmus (RU).

SELECT Select

Stammknoten eines SELECT-Vorgangs. Weitere Hinweise finden Sie unter SELECT-Anweisung.

seq TableScan, ParallelTableScan

In einem grafischen Plan werden Table-Scans als Tabellenname in einem Rechteck dargestellt. Weitere Hinweise finden Sie unter TableScan-Methode (seq) und ParallelTableScan-Methode.

Sort Sort

Indizierte Sortierung oder Zusammenführungssortierung. Weitere Hinweise finden Sie unter Sort-Algorithmus (Sort).

SrtN SortTopN

Weitere Hinweise finden Sie unter SortTopN-Algorithmus (SrtN).

TermBreak TermBreak

Der Termbreaker-Algorithmus für Volltextsuche. Weitere Hinweise finden Sie unter Einen Textindex ändern.

UA UnionAll

Weitere Hinweise finden Sie unter UnionAll-Algorithmus (UA).

UPDATE Update

Der Stammknoten eines UPDATE-Vorgangs. Weitere Hinweise finden Sie unter UPDATE-Anweisung.

Window Window

Weitere Hinweise finden Sie unter Window-Algorithmus (Window).

Work Work table

Ein interner Knoten, der ein Zwischenergebnis darstellt.

Häufig im Plan verwendete Statistiken

Die folgenden Statistiken sind tatsächliche, gemessene Werte.

Statistik Erklärung
Invocations Wie oft eine Zeile aus der Unterstruktur angefordert wurde
RowsReturned Anzahl der für den aktuellen Knoten zurückgegebenen Zeilen
RunTime Ausführungszeit für die Unterstruktur, einschließlich der Zeit für untergeordnete Strukturen
CacheHits Anzahl der erfolgreichen Lesevorgänge im Cache
CacheRead Anzahl der Datenbankseiten, die im Cache nachgeschlagen wurden
CacheReadTable Anzahl der Tabellenseiten, die vom Cache gelesen wurden
CacheReadIndLeaf Anzahl der Indexblattseiten, die vom Cache gelesen wurden
CacheReadIndInt Anzahl der internen Knotenseiten des Index, die vom Cache gelesen wurden
DiskRead Anzahl der Seiten, die vom Plattenspeicher gelesen wurden
DiskReadTable Anzahl der Tabellenseiten, die vom Plattenspeicher gelesen wurden
DiskReadIndLeaf Anzahl der Indexblattseiten, die vom Plattenspeicher gelesen wurden
DiskReadIndInt Anzahl der internen Knotenseiten des Index, die vom Plattenspeicher gelesen wurden
DiskWrite Anzahl der Seiten, die auf den Plattenspeicher geschrieben wurden (Arbeitstabellenseiten oder geänderte Tabellenseiten)
IndAdd Anzahl der Einträge, die zu Indizes hinzugefügt wurden
IndLookup Anzahl der Einträge, die in Indizes nachgeschlagen wurden
FullCompare Anzahl der Vergleiche, die jenseits des Hash-Werts in einem Index ausgeführt wurden
Häufig im Plan verwendete Schätzungen
Statistik Erklärung
EstRowCount Geschätzte Anzahl der Zeilen, die vom Knoten jedesmal zurückgegeben werden, wenn er aufgerufen wird
AvgRowCount Mittlere Anzahl der Zeilen, die bei jedem Aufruf zurückgegeben werden. Diese Zahl wird nicht geschätzt, sondern berechnet als RowsReturned / Invocations. Wenn dieser Wert deutlich von EstRowCount abweicht, ist eventuell die Selektivitätsschätzung schlecht.
EstRunTime Geschätzte Ausführungszeit (Summe von EstDiskReadTime, EstDiskWriteTime und EstCpuTime)
AvgRunTime Mittlere Ausführungszeit (gemessen)
EstDiskReads Geschätzte Anzahl der Lesevorgänge von der Festplatte
AvgDiskReads Mittlere Anzahl der Lesevorgänge von der Festplatte (gemessen)
EstDiskWrites Geschätzte Anzahl der Schreibvorgänge auf die Festplatte
AvgDiskWrites Mittlere Anzahl der Schreibvorgänge auf die Festplatte (gemessen)
EstDiskReadTime Geschätzte Zeit zum Lesen von Zeilen von der Festplatte
EstDiskWriteTime Geschätzte Zeit zum Schreiben von Zeilen auf die Festplatte
EstCpuTime Geschätzte Prozessorzeit, die für die Ausführung erforderlich ist
Elemente im Plan in Bezug auf SELECT, INSERT, UPDATE und DELETE
Element Erklärung
Optimierungsziel (optimization_goal) Legt fest, ob die Abfrageverarbeitung dahingehend optimiert wird, die erste Zeile schnell zurückzugeben, oder ob die Kosten für die Ausgabe der vollständigen Ergebnismenge minimiert werden sollen. Weitere Hinweise finden Sie unter optimization_goal-Option [Datenbank].
Optimierungsarbeitslast (optimization_workload) Legt fest, ob die Abfrageverarbeitung für eine Arbeitslast optimiert wird, die aus einer Mischung von Aktualisierungen und Lesevorgängen besteht, oder für eine Arbeitslast, die hauptsächlich auf Lesevorgängen basiert. Weitere Hinweise finden Sie unter optimization_workload-Option [Datenbank].
ANSI-Aktualisierungsbeschränkungen (ansi_update_constraints) Steuert den Bereich der Aktualisierungen, die zulässig sind (Optionen sind: Off, Cursors und Strict). Weitere Hinweise finden Sie unter ansi_update_constraints-Option [Kompatibilität]
Optimierungsstufe (optimization_level) Reserviert
Select-Liste Liste mit Ausdrücken, die von der Abfrage ausgewählt wurden
Materialisierte Ansichten

Liste der materialisierten Ansichten, die vom Optimierer in Betracht gezogen werden. Jeder Listeneintrag ist ein Tupel im folgenden Format: Ansichtsname [ Ansichtenübereinstimmungsergebnis ] [ Tabellenliste ], wobei Ansichtenübereinstimmungsergebnis die Nutzung einer materialisierten Ansicht zeigt. Falls der Wert COSTED lautet, wurde die Ansicht während der Enumeration verwendet. Die Tabellenliste ist eine Liste mit Abfragetabellen, die möglicherweise durch diese Ansicht ersetzt wurden.

Zu den Werten für das Ansichtenübereinstimmungsergebnis gehören:

  • Basistabelle stimmt nicht überein
  • Berechtigungen stimmen nicht überein
  • Prädikat stimmt nicht überein
  • Auswahlliste stimmt nicht überein
  • Kosten
  • Ansicht veraltet
  • Snapshot veraltet
  • Kann von Optimierer nicht verwendet werden
  • Kann intern von Optimierer nicht verwendet werden
  • Definition kann nicht erstellt werden
  • Zugriff nicht möglich
  • Disabled
  • Optionen stimmen nicht überein
  • Schwellenwert für Ansichtenübereinstimmung erreicht
  • Verwendete Ansicht

Weitere Informationen über Einschränkungen und Bedingungen, die den Optimierer vom Verwenden einer materialisierten Ansicht abhalten, finden Sie unter Performance durch materialisierte Ansichten verbessern und Einschränkungen bei materialisierten Ansichten

Elemente im Plan in Bezug auf Sperren
Element Erklärung
Gesperrte Tabellen Liste aller gesperrten Tabellen und ihrer Isolationsstufen
Elemente im Plan in Bezug auf Scans
Element Erklärung
Tabellenname Tatsächlicher Name der Tabelle
Korrelationsname Alias für die Tabelle
Geschätzte Zeilen Geschätzte Anzahl der Zeilen in der Tabelle
Geschätzte Seiten Geschätzte Anzahl der Seiten in der Tabelle
Geschätzte Zeilengröße Geschätzte Zeilengröße für die Tabelle
Seitenzuordnung JA, wenn eine Seitenzuordnung zum Lesen mehrerer Seiten verwendet wird
Elemente im Plan in Bezug auf Index-Scans
Element Erklärung
Selektivität Geschätzte Anzahl der Zeilen, die innerhalb der Bereichsgrenzen liegen
Indexname Name des Indexes
Schlüsseltyp Kann PRIMARY KEY, FOREIGN KEY, CONSTRAINT (unique constraint) oder UNIQUE (unique index) sein. Der Schlüsseltyp erscheint nicht, wenn der Index ein nicht eindeutiger Sekundärindex ist.
Tiefe Höhe des Indexes. Weitere Hinweise finden Sie unter Tabellen- und Seitengrößen.
Geschätzte Blattseiten Geschätzte Anzahl der Blattseiten
Sequenzielle Transitionen Statistiken für jeden physischen Index, die angeben, wie gebündelt (clustered) der Index ist.
Zufällige Transitionen Statistiken für jeden physischen Index, die angeben, wie gebündelt (clustered) der Index ist.
Schlüsselwerte Die Anzahl der eindeutigen Einträge im Index
Kardinalität Die Kardinalität des Indexes, wenn er sich von der geschätzten Anzahl der Zeilen unterscheidet. Dies gilt nur für SQL Anywhere-Datenbanken der Version 6.0.0 und früher.
Richtung FORWARD oder BACKWARD.
Bereichsgrenzen Bereichsgrenzen werden als eine Liste dargestellt (col_name=value) oder col_name IN [low, high]
Primärschlüsseltabelle Der Name der Primärschlüsseltabelle für einen Fremdschlüsselindex-Scan..
Geschätzte Zeilen in Primärschlüsseltabelle Die Anzahl der Zeilen in der Primärschlüsseltabelle für einen Fremdschlüsselindex-Scan.
Primärschlüsselspalte Die Namen der Primärschlüsselspalten für einen Fremdschlüsselindex-Scan.
Elemente im Plan in Bezug auf Joins, Filter und Pre-Filter
Element Erklärung
Prädikate Die Suchbedingung, die in diesem Knoten aufgelöst wird, sowie Selektivitätsschätzungen und –messungen. Weitere Hinweise finden Sie unter Selektivität im grafischen Plan anzeigen
Elemente im Plan in Bezug auf Hash-Filter
Element Erklärung
Erzeugungswerte Geschätzte Anzahl von unterschiedlichen Werten in der Eingabe
Prüfwerte Geschätzte Anzahl von unterschiedlichen Werten in der Eingabe beim Prüfen des Prädikats
Bits Anzahl der Bits, die zum Aufbau der Hash-Map ausgewählt wurde
Seiten Anzahl der Seiten, die zum Speichern der Hash-Map erforderlich sind
Elemente im Plan in Bezug auf Vereinigung
Element Erklärung
Union-Liste Spalten, die in eine UNION-Anweisung eingebunden sind
Elemente im Plan in Bezug auf GROUP BY
Element Erklärung
Aggregate Alle Aggregatfunktionen
Group-by-Liste Alle Spalten in der Group by-Klausel
Elemente im Plan in Bezug auf DISTINCT
Element Erklärung
Distinct-Liste Alle Spalten in der distinct-Klausel
Elemente im Plan in Bezug auf die IN-Liste
Element Erklärung
In-Liste Alle Ausdrücke in der angegebenen Menge
SQL-Ausdruck Ausdrücke, die mit der Liste verglichen werden müssen
Elemente im Plan in Bezug auf SORT
Element Erklärung
Order-by Listet alle Ausdrücke, nach denen sortiert werden soll
Elemente im Plan in Bezug auf Zeilenbegrenzung
Element Erklärung
Zeilenlimit gesamt Maximale Anzahl von zurückgegebenen Zeilen, wie dies mit FIRST oder TOP n angegeben wurde