5
我使用空間索引,當我嘗試執行WHERE
聲明:錯誤在SQL Server中使用空間索引時
WHERE T.GEOMETRY.STIntersects(O.GEOMETRY) = 1 AND T.GEOMETRY.STTouches(O.GEOMETRY) = 0
它工作正常,但是當我嘗試與執行OR:
WHERE T.GEOMETRY.STOverlaps(O.GEOMETRY) = 1 OR T.GEOMETRY.STWithin(O.GEOMETRY) = 1
我得到這個錯誤:
The query processor could not produce a query plan for a query with a spatial index hint. Reason: Could not find required binary spatial method in a condition. Try removing the index hints or removing SET FORCEPLAN.
任何幫助,什麼是這種說法有問題嗎?
因此,錯誤消息暗指空間索引提示。您是否試圖通過執行類似「從(index(idx_spatial))」的tbl來強制優化器的手? –
是的,我正在使用「FROM TABLE WITH(INDEX(spatial_index))」。我不明白這個錯誤,爲什麼它與AND協同工作,而不是與OR協同工作。 – Nenad
我不知道,但服務器顯然很生氣,試圖繞過它通常會做的事情。提示索引提示:當你真正瞭解自己在做什麼時(通常不是說你是菜鳥,但很少有人比優化者更聰明),它們通常是保留的。 –