我在具有可爲NULL或NOT NULL(未放置或放置在地圖上)的地理座標列的SQL Server數據庫中有大量照片(〜10百萬)。在空間索引中使用NULL
另外我創建了這個地理信息的空間索引。
現在我試圖選擇某些多邊形內的所有照片。
有存儲哪些不是在地圖上照片的方法有兩種:
如果我分配NULL地緣這不是地圖上的所有照片的位置,這樣的查詢速度太慢的性能(如我覺得不舒服,空間索引根本不適用於NULL列)。
如果我將
POINT(0 0)
分配給地圖上所有不在地圖上的照片,性能很好,除了這個零點POINT(0 0)
。此類請求也會返回錯誤的照片(它們在地圖上不存在)。
我該如何克服這些問題?
我應該添加一個包含NULL或NOT NULL位的列,並從兩列(此列和地理信息)創建索引嗎?
UPDATE我試圖從兩列創建索引,但這是不可能的,因爲空間索引只包含一個包含地理信息的列(MSDN)。
附表不是因爲冗餘的一個很好的解決方案。 – 2013-02-28 09:29:11
我同意這不是一個理想的解決方案,但它確實有好處: 1:沒有插入需要稍後過濾掉的虛擬數據。 2:大小和性能:虛擬數據也會顯着增加索引大小,從而影響執行時間。 3:我只有存儲在該表上的空間數據類型,所以唯一的重複是PK。 這種折衷讓我值得一看,但我知道你對你的情況得出了不同的結論。 – Tomas 2013-02-28 12:54:25