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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen optimieren und ausführen » Algorithmen zur Abfrageausführung » Tabellen-Zugriffsmethoden

 

HashTableScan-Methode (HTS)

Die HashTableScan-Methode durchsucht die Build-Seite eines Hash-Joins, als wäre sie eine speicherresidente Tabelle, dabei wird ein Plan mit darunter liegender Erst-Struktur in einen mit darunter liegender Zweit-Struktur konvertiert, wobei idx ein Index ist, der zur Prüfung der in der Hash-Tabelle gespeicherten Join-Schlüsselwerte verwendet werden kann:

table1<seq>*JH ( <operator>... ( table2<seq> ) )

table1<seq>*JF ( <operator>... ( HTS JNB table2<idx> ) )

Wenn es Operatoren zwischen dem Hash-Join und dem Scan gibt, vermindert ein Hash Table-Scan die Anzahl der benötigten Zeilen, die von anderen Operatoren verarbeitet werden müssen. Diese Strategie ist besonders nützlich, wenn die Index-Durchsuchungen hoch selektiv sind, wie wenn z.B. die Anzahl der Zeilen in der Build-Seite gering ist verglichen mit der Kardinalität des Indexes.

Hinweis

Wenn die Build-Seite des Hash-Joins umfangreich ist, ist es effizienter, einen regulären Scan durchzuführen.

Der Optimierer berechnet eine Schwellenwert-Build-Größe, und zwar auf ähnliche Weise wie er den Schwellenwert für die alternative Ausführung des Hash-Joins berechnet. Wenn die Zeilenanzahl auf der Build-Seite diesen Schwellenwert überschreitet, wird der HashTableScan abgebrochen und (HTS JNB Tabelle<idx>) wird während der Ausführung als ein sequenzieller Scan (Tabelle<seq>) behandelt.

Hinweis

Die sequenzielle Strategie wird verwendet, wenn die Build-Seite der Hash-Tabelle auf die Festplatte ausgegeben werden muss.