Benutzer- und Referenzhandbuch

Richtlinien zur Verwendung eines räumlichen Index

Der DB2 Spatial Extender verbessert mit Hilfe eines räumlichen Index die Leistung einer räumlichen Abfrage. Betrachten Sie die einfachste und wahrscheinlich häufigste räumliche Abfrage, die Feldabfrage. Diese Abfrage fordert den DB2 Spatial Extender auf, alle Geometrien zurückzugeben, die vollständig oder teilweise innerhalb eines benutzerdefinierten Felds liegen. Wenn kein Index vorhanden ist, muß der DB2 Spatial Extender alle Geometrien mit dem Feld vergleichen. Mit einem Index kann der DB2 Spatial Extender jedoch alle Indexeinträge finden, deren linke untere Koordinate größer oder gleich der des Feldes ist und deren obere rechte Koordinate kleiner oder gleich der des Feldes ist. Da der Index nach diesem Koordinatensystem geordnet ist, kann der DB2 Spatial Extender schnell eine Liste der Kandidatengeometrien abrufen. Dieser Prozeß wird als erster Arbeitsgang bezeichnet.

Ein zweiter Arbeitsgang ermittelt, ob die Umschläge der Kandidaten einen Kasten schneiden. Eine für den ersten Arbeitsgang qualifizierte Geometrie, deren Gitterzellenumschlag den Kasten schneidet, kann selbst einen Umschlag haben, der den Kasten nicht schneidet.

Ein dritter Arbeitsgang vergleicht die tatsächlichen Koordinaten des Kandidaten mit dem Kasten, um festzustellen, ob ein Teil der Geometrie tatsächlich in dem Kasten liegt. Dieser letzte und relativ komplexe Vergleichsprozeß arbeitet mit einer Liste von Kandidaten, die aus einer Untermenge der Gesamtpopulation bestehen, die durch die beiden ersten Arbeitsgänge erheblich reduziert wurde.

Alle räumlichen Abfragen mit Ausnahme der Funktion EnvelopesIntersect führen die drei Arbeitsgänge aus. Diese Funktion führt nur die beiden ersten Arbeitsgänge aus. Die Funktion EnvelopesIntersect wurde für Anzeigeoperationen konzipiert, die häufig ihre eigenen integrierten Ausschnittroutinen verwenden und die Unterteilung des dritten Arbeitsgangs nicht erfordern.

Gitterzellengröße auswählen

Die unregelmäßige Form der Geometrieumschläge kompliziert die Auswahl der Gitterzellengröße. Wegen dieser Unregelmäßigkeit schneiden manche Geometrieumschläge mehrere Gitter, während andere in eine einzige Gitterzelle passen. Andererseits schneiden manche Gitterzellen, je nach der räumlichen Verteilung der Daten, viele Geometrieumschläge.

Damit ein räumlicher Index gut funktioniert, ist die Auswahl der richtigen Anzahl und Größe der Gitter sehr wichtig. Betrachten Sie eine räumliche Spalte mit einer Geometrie einheitlicher Größe. In diesem Fall genügt eine einzige Gitterstufe. Beginnen Sie mit einer Gitterzellengröße, die den durchschnittlichen Geometrieumschlag umfaßt. Beim Testen Ihrer Anwendung stellen Sie eventuell fest, daß durch die Vergrößerung der Gitterzellengröße die Leistung Ihrer Abfragen verbessert wird. Dies liegt daran, daß jede Gitterzelle mehrere Geometrien enthält und der erste Arbeitsgang nicht qualifizierte Geometrien schneller verwerfen kann. Sie werden jedoch ebenfalls feststellen, daß die Leistung bei einer weiteren Vergrößerung der Zellengröße wieder nachläßt. Das liegt daran, daß der zweite Arbeitsgang schließlich mit mehr Kandidaten arbeiten muß.

Anzahl der Stufen auswählen

Wenn die Objekte, die Sie indexieren wollen, ungefähr gleich groß sind, können Sie mit einer einzigen Gitterstufe arbeiten. Dies ist zwar richtig; es enthalten jedoch nicht alle Spalten eine Geometrie der gleichen relativen Größe. Normalerweise können Geometrien räumlicher Spalten in Intervallen verschiedener Größen gruppiert werden. Denken Sie beispielsweise an ein Straßennetz, in dem die Geometrien in Straßen, Hauptstraßen und Fernstraßen unterteilt sind. Die Straßen sind alle ungefähr gleich lang und können in einer Intervallgröße gruppiert werden. Dies gilt auch für die Hauptstraßen und Fernstraßen. Die Straßen, die für ein Größenintervall stehen, können daher in der erste Gitterstufe gruppiert werden, die Hauptstraßen in der zweiten und die Fernstraßen in der dritten. Ein weiteres Beispiel bildet eine Spalte "Landkreisflächen", die Gruppen kleiner städtischer Flächen enthält, die von größeren ländlichen Flächen umgeben sind. In diesem Fall gibt es zwei Größenintervalle und zwei Gitterstufen, eine für die kleinen städtischen Flächen und eine andere für die größeren ländlichen Flächen. Diese Situationen sind sehr häufig und erfordern die Verwendung eines mehrstufigen Gitters.

Zur Auswahl der Zellengröße jeder Gitterstufe wählen Sie Gitterzellengrößen aus, die etwas größer sind als jedes Größenintervall. Testen Sie den Index durch Ausführen von Abfragen, gegen die räumlichen Spalten.

Jede zusätzliche Stufe erfordert eine zusätzliche Indexsuche. Versuchen Sie, die Gittergrößen leicht nach oben oder unten anzupassen, um festzustellen, ob dadurch eine Verbesserung der Leistung erzielt wird.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]