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 immer 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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |