我目前有一個網站,其中有一個緯度/長度浮點型列表,還有一個索引在這兩列以及另一個我需要檢索的列表上。我可以在SQL Server 2008中創建「覆蓋,空間」索引嗎?
我不斷查詢此表以獲取從某一點(我實際上得到一個速度的正方形)落在半徑內的行,但我只需要已經索引的字段,所以此索引其實覆蓋,並執行計劃只有2個步驟:
Index Seek (cost: 100%) and SELECT (cost: 0%)
現在,我試圖利用SQL 2008年我創建了地理列的空間特徵的優勢,填補它,創建空間索引,作品。
除了執行計劃有一百萬步之外,它一切正常,74%的時間花費在一個聚集索引搜索上,它將它在空間索引中找到的行連接到實際表中,拿到其餘數據...
(空間索引尋求採取執行計劃成本的1%)
所以,很明顯,適當地使用空間索引和查找記錄,我需要比快得多之前我在Lat/Long上的「常規」索引,但加入到主表中的是KILLING me,空間查詢需要我的舊查詢的7倍。
是否有任何方法可以向空間索引添加更多列,以便它可以覆蓋並且可以一步完成任務,就像之前做的一樣?
我還可以做其他事情來改善這種情況嗎?
更新:我發現「正規軍」索引可以使用包含關鍵字「包括」等欄目(我不知道,我以前只是包括指數本身的列)
根據到文檔here,該條款不是空間索引的選項... 任何想法?
謝謝!
Daniel