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 » Typen von Algorithmen » Algorithmen für Abfrageausdrücke

 

Intersect-Algorithmen (IH, IM, IAH, IAM)

Der SQL Anywhere-Abfrageoptimierer kann aus zwei physischen Implementierungen des SQL-Operators für Mengendurchschnitte INTERSECT wählen: eine Sortierungs-basierte Variante, MergeIntersect (IM), und eine Hash-basierte Variante, HashIntersect (IH).

MergeIntersect verwendet MergeJoin, um den Mengendurchschnitt zwischen den beiden Eingaben durch Analyse von Zeilenübereinstimmungen in sortierter Reihenfolge zu berechnen. Häufig ist ein explizites Sortieren der beiden Eingaben erforderlich. Auf ähnliche Weise verwendet HashIntersect HashJoin, um den Mengen- und den Schnittmengendurchschnitt zwischen den beiden Eingaben zu berechnen (INTERSECT und INTERSECT ALL).

Falls erforderlich schaltet HashIntersect dynamisch auf eine Nested-Loops-Strategie um, wenn eine Speicherknappheit festgestellt wird. Tritt dieser Fall ein, wird ein Performance-Zähler erhöht. Sie können diesen Monitor anhand der Datenbank- oder Verbindungseigenschaft "QueryLowMemoryStrategy" lesen, im Statistikwert "QueryLowMemoryStrategy" im grafischen Plan (wenn die Ausführung Statistiken umfasst) oder im Zähler "Abfrage: Strategien für Speichermangel" im Windows-Systemmonitor.

HashIntersect ist unter Windows Mobile bei Speicherknappheit deaktiviert.

INTERSECT, MergeIntersect oder HashIntersect sind mit einem der DISTINCT-Algorithmen gekoppelt, um zu gewährleisten, dass das Ergebnis keine Duplikate enthält. Bei INTERSECT ALL-Vorgängen werden MergeIntersectAll und HashIntersectAll mit RowReplicate gekoppelt, wodurch die korrekte Anzahl von Duplikaten im Ergebnis berechnet wird.

 Siehe auch