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 » Algorithmen zur Abfrageausführung » Typen von Algorithmen » Gruppierungsalgorithmen

 

ClusteredHashGroupBy-Algorithmus (GrByHClust)

In manchen Fällen sind die Werte in den Gruppenspalten der Eingabetabelle gebündelt (clustered), d.h. ähnliche Werte treten nahe beieinander auf. Wenn z.B. eine Tabelle eine Spalte enthält, die immer auf das aktuelle Datum zum Zeitpunkt der Speicherung eingestellt ist, sind meistens die Zeilen mit einem bestimmten Datum in der Tabelle relativ nahe beieinander. ClusteredHashGroupBy nutzt diese Clusterbildung.

Der Optimierer kann ClusteredHashGroupBy verwenden, wenn er Tabellen gruppiert, die um einiges größer als der verfügbare Speicher sind. Dies ist dann besonders effektiv, wenn das HAVING-Prädikat nur einen geringen Prozentsatz an Zeilen zurückgibt.

ClusteredHashGroupBy kann beim Optimierer zu erheblichen Mehraufwand führen, wenn er in einer Umgebung ausgewählt wird, in der Daten gleichzeitig mit der Abfrageausführung aktualisiert werden. ClusteredHashGroupBy ist daher besonders für OLAP-Arbeitslasten geeignet, die durch gelegentliche Batch-artige Aktualisierungen und auf Lesevorgängen basierenden Abfragen gekennzeichnet sind. Setzen Sie die Option "optimization_workload" auf OLAP, um zu erreichen, dass der Optimierer ClusteredHashGroupBy in die zu untersuchenden Alternativen einbezieht. Weitere Hinweise finden Sie unter optimization_workload-Option [Datenbank].

Wenn Sie einen Index oder Fremdschlüssel erstellen, der in einer OLAP-Arbeitslast benutzt werden kann, verwenden Sie die Klausel FOR OLAP WORKLOAD. Diese Klausel veranlasst den Datenbankserver, eine Statistik zu fühen, die von ClusteredHashGroupBy verwendet wird und die maximale Seitenentfernung zwischen zwei Zeilen mit demselben Schlüssel betrifft. Siehe CREATE INDEX-Anweisung, CREATE TABLE-Anweisung und ALTER TABLE-Anweisung.

Weitere Hinweise zu OLAP-Arbeitslasten finden Sie unter OLAP-Unterstützung.