Grundlagen zu räumlichen Indizes

8

Ich habe in einem Forum gefragt, ob es eine gute Idee sein könnte, räumliche Indizes für Teilmengen einer Tabelle zu erstellen, wenn Ihre Anwendung nur diese Teilmengen und niemals die gesamte Tabelle auf der Karte anzeigt.

Ich habe diese Frage gestellt, weil ich dachte, da die Teilmengen nicht die gleichen Ausmaße der gesamten Tabelle haben, wäre es möglicherweise schneller, die Teilmengen mit ihren eigenen räumlichen Indizes anzuzeigen.

Die Antwort, die ich erhielt, war, dass räumliche Indizes die Anzeigezeit nicht beeinflussen, sondern nur für räumliche Abfragen wie Vereinigung oder Schnittmenge verwendet werden. Ist es wahr??? Meine Erfahrung mit GIS und Datenbank ist, dass wenn eine Tabelle keinen räumlichen Index hat, die Anzeige auf der Karte viel langsamer ist. Ich habe immer gedacht, dass die angezeigte Tabelle abgefragt wird, um die Features anzuzeigen, die die aktuelle Kartenfensterausdehnung schneiden, sodass die Features außerhalb nicht umsonst geladen werden. Funktioniert es wirklich so? Dies ist eine Art räumliche Abfrage, nein?

Was ist die Wahrheit? Ist es eine gute Idee, räumliche Indizes für Teilmengen zu erstellen?

Unter dem Radar
quelle

Antworten:

13

Für Anzeigezwecke ist es immer gut, einen räumlichen Index zu verwenden. Dadurch wird die Geschwindigkeit sowohl beim Rendern als auch bei räumlichen Abfragen verbessert. Wenn Sie jedoch große Mengen von Objekten aktualisieren möchten, ist es möglicherweise ratsam, den räumlichen Index während der Aktualisierung zu entfernen. Andernfalls wird der Aktualisierungsprozess erheblich langsamer, da bei jeder Aktualisierung auch der räumliche Index aktualisiert werden muss. Nach dem Update können Sie erneut einen räumlichen Index hinzufügen.

Mark Verschuur
quelle
Zum Hinzufügen zu Markenkommentaren wird häufig ein ESRI-Shapefile ohne räumlichen Index erstellt. Durch Hinzufügen eines solchen kann die Anzeige in ArcMap erheblich verbessert werden. Wenn sich Ihre Daten in einer persönlichen oder Datei-Geodatabase befinden, haben diese automatisch einen räumlichen Index. Woran erkennst du das? In ArcMap wird neben dem Feld "Form" ein kleiner Stern angezeigt, wenn Sie die Daten im Tabellenmodus anzeigen.
Hornbydd
5

Bei großen Datenbanken oder einer Datenbank mit möglicherweise Änderungen kann es sehr wichtig sein, räumliche Indizes einzurichten und regelmäßig zu aktualisieren.

(Hier einfach halten)

Beispielsweise ist die Indizierung von Oracle Spatial-Funktionen in der Oracle-Datenbank-Engine eine wichtige Funktion des Spatial-Produkts. Ein räumlicher Index bietet wie jeder andere Index einen Mechanismus zum Einschränken der Suche , in diesem Fall jedoch basierend auf räumlichen Kriterien wie Schnittmenge und Eindämmung. Ein räumlicher Index ist erforderlich, um:

  • Suchen Sie Objekte in einem indizierten Datenraum, die einen bestimmten Punkt oder einen bestimmten Bereich von Interesse überlappen (Fensterabfrage).
  • Suchen Sie Objektpaare aus zwei indizierten Datenräumen, die räumlich miteinander interagieren (räumliche Verknüpfung).

Räumliche Indizierung mit Oracle 11.2g

http://docs.oracle.com/cd/E11882_01/appdev.112/e11830/sdo_index_query.htm

Mapperz
quelle
+1 Informationen zur SQL Server-Diskussion finden Sie in Isaac Kunens Blogbeitrag zu Basic Multi-Level Grids .
Kirk Kuykendall
Wenn Sie jedoch eine erhebliche Anzahl von Änderungen vornehmen, kann der räumliche Index die Zugriffsgeschwindigkeit verringern. Das heißt, wenn die Datenbank bei jeder Bearbeitung den Index neu berechnet, kann dies zu einem großen Leistungseinbruch führen. Das Timing von Updates in einer Umgebung mit hoher Auslastung ist wichtig.
Jay Laura
1
Jay hängt davon ab, ob die Datenbank für Transaktions- (schnelles Lesen / Schreiben) oder Data Warehousing (langes Laden von
Mapperz