Wie kann ich diese angeben, die SQL-Index-Hinweis auf meinem SQL Server 2008 query?

Ich bin nicht sicher, wo/wie ich diese angeben, SQL-Spatial-Index-Hinweis auf meine Anfrage :-

SELECT Whatever
FROM Table1 a
    INNER JOIN Table2 b ON a.Id = b.Id
WHERE @SomeBoundingBox.STIntersects(b.SomeGeographyShape) = 1

Wenn ich die Abfrage ausführen, ist es NICHT mit dem Räumlichen Hinweis. Ja, ich verwende die neueste version SQL Server 2008 r2 (v 10.5.1600.1).

So vergleichen Sie die Abfrage-Geschwindigkeit zwingt den Tipp, ich habe versucht...

SELECT Whatever
FROM Table1 a
    INNER JOIN Table2 b WITH (INDEX(MySpatialIndex)) ON a.Id = b.Id
WHERE @SomeBoundingBox.STIntersects(b.SomeGeographyShape) = 1

und das funktionierte, aber es war wirklich eine schlechte Leistung. Ich Frage mich, ob es wurde versucht, mit meinem Hinweis zu tun, der a.Id = b.Id beitreten (die ich nicht wollen, verwenden Sie den Hinweis, für).

Irgendwelche Vorschläge?

UPDATE:

Hinzugefügt Abfrage-Plan. Der Großteil der Kosten ist die VERKNÜPFUNG zwischen den beiden Tabellen. Der Filter (where-Klausel) greift die 2. teuerste Teil.

Wie kann ich diese angeben, die SQL-Index-Hinweis auf meinem SQL Server 2008 query?

InformationsquelleAutor Pure.Krome | 2010-11-15

Schreibe einen Kommentar