Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden von STCrosses() mit einem räumlichen Index in SQL Server

Nein.

Das Indizieren räumlicher Daten ist nicht trivial, und die Klasse, die Sie besprechen, kann beliebig komplexe Figuren enthalten, nicht nur einfache geometrische Formen. Die spezifische Art und Weise, wie Formen und Indizierung implementiert sind, kann das Auffinden von Überlappungen im allgemeinen Fall schwierig oder unmöglich machen. Es basiert auch nicht auf dem, was in den räumlichen Daten für komplexe Geometrien indiziert ist. Dies kann der Grund dafür sein, dass Sie nicht verlangen können, dass SQL nur den Index verwendet - es gibt dort nicht genügend Daten. Im degenerierten Fall kann es sein, aber es würde das nicht wissen, also wird es ausgeschaltet.

Stellen Sie sich eine Sternform vor, in die komplexe Dinge eingebettet sind. Der Index kann nur die Grenze der äußeren Form oder die Mitte der Form oder das Begrenzungsrechteck speichern. Keines davon würde ausreichen, um den Schnittpunkt von 2 Formen zu berechnen oder ob sich die Formen tatsächlich überlappen.

Siehe http://msdn.microsoft.com/en-us/ library/bb895265.aspx#geometry um zu bestätigen, dass es nicht unterstützt wird.