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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite Performance-Tipps » Tipps für die Abfrageperformance » Ausführungspläne in UltraLite » Vom Optimierer verwendete Zugriffsmethode bestimmen

 

Verwalten von temporären Tabellen

Im Allgemeinen versucht der Optimierer immer, die Erstellung von temporären Tabellen für die Rückgabe von Abfrageergebnissen zu vermeiden, da die gesamte temporäre Tabelle aufgefüllt werden muss, bevor die erste Zeile zurückgegeben werden kann. Wenn ein Index existiert, versucht der Optimierer, den Index zuerst zu verwenden, bevor er als letzte Möglichkeit eine temporäre Tabelle erstellt.

Ein Zugriffsplan verwendet eine temporäre Tabelle, um Daten während seiner Ausführung in einer flüchtigen bzw. temporären Arbeitstabelle zu speichern. Diese Tabelle ist nur vorhanden, während der Zugriffsplan ausgeführt wird. Üblicherweise werden temporäre Tabellen verwendet, wenn Zwischenergebnisse zu groß für den verfügbaren Speicher sind, wie zum Beispiel:

  • Wenn Unterabfragen im Rahmen des Zugriffsplans früh ausgewertet werden müssen.

  • Wenn Daten in einer temporären Tabelle nur für eine einzelne Verbindung gehalten werden.

  • Wenn eine Abfrage eine ORDER BY-Klausel für eine Spalte enthält, bei der es sich nicht um einen Index handelt.

  • Wenn eine Abfrage eine GROUP BY-Klausel für eine Spalte enthält, bei der es sich nicht um einen Index handelt.

Es ist schwierig vorherzusehen, ob ein Index die Erstellung temporärer Tabellen vermeidet. Sie sollten daher die Pläne für eine Abfrage überprüfen, um sicherzustellen, dass die erstellten Indizes vom UltraLite-Abfrageoptimierer tatsächlich verwendet werden.

Sie können die Verwendung von temporären Tabellen vermeiden, indem Sie für die in der ORDER BY- oder GROUP BY-Klausel verwendeten Spalten einen Index nutzen.

 Siehe auch

Direkte Page-Scans